php 未始终如一地显示文件更改
php not showing changes to files consistently
我正在对 php 文件进行更改,但它们有时没有显示。有时他们会立即显示。有时我不得不等几分钟。我已经完成并关闭了所有我想关闭的缓存。这个问题是不一致的,很难一致地复制。
回答我自己的问题...
我花了很长时间进行试验以始终如一地重现该行为。我不得不让服务器在几分钟内不刷新任何页面。然后,如果我在刷新页面之前更改文件,更改会立即显示,所有后续更改也会立即显示。如果我先刷新页面,然后对文件进行更改,那么在我刷新 10-20 次左右之前不会显示后续更改。
顺便说一句,html 文件无论如何都会显示所有更新,所以这是一个 php 问题。
在找到答案之前,我试过...
- 关闭 nginx 缓存
- 将 nginx conf 设置为
sendfile off;
- 将 nginx conf 设置为
expires off;
... none 这些作品。然后我发现它实际上是OPcache。我通过将 php.ini 文件更改为此(并重新启动所有服务)
来解决问题
opcache.enable=0
我关于这个问题的问题参考这个link
解决了
:Nginx Server “caches” PHP. Updated Page does not Reload
作者:
service php-fpm restart # most centos
service php7-php-fpm restart # centos and remi php7
service php7.0-fpm restart # ubuntu
您是否在 header 中尝试了以下元标记?
<meta http-equiv="Cache-control" content="no-cache">
我正在对 php 文件进行更改,但它们有时没有显示。有时他们会立即显示。有时我不得不等几分钟。我已经完成并关闭了所有我想关闭的缓存。这个问题是不一致的,很难一致地复制。
回答我自己的问题...
我花了很长时间进行试验以始终如一地重现该行为。我不得不让服务器在几分钟内不刷新任何页面。然后,如果我在刷新页面之前更改文件,更改会立即显示,所有后续更改也会立即显示。如果我先刷新页面,然后对文件进行更改,那么在我刷新 10-20 次左右之前不会显示后续更改。
顺便说一句,html 文件无论如何都会显示所有更新,所以这是一个 php 问题。
在找到答案之前,我试过...
- 关闭 nginx 缓存
- 将 nginx conf 设置为
sendfile off;
- 将 nginx conf 设置为
expires off;
... none 这些作品。然后我发现它实际上是OPcache。我通过将 php.ini 文件更改为此(并重新启动所有服务)
来解决问题opcache.enable=0
我关于这个问题的问题参考这个link
解决了:Nginx Server “caches” PHP. Updated Page does not Reload
作者:
service php-fpm restart # most centos
service php7-php-fpm restart # centos and remi php7
service php7.0-fpm restart # ubuntu
您是否在 header 中尝试了以下元标记?
<meta http-equiv="Cache-control" content="no-cache">