如何关闭服务器和浏览器上 PHP 页面的缓存?
How to Turn off Caching of PHP Pages on Server and Browser?
我不确定 php 页面的缓存来自哪里。到目前为止,我已经禁用了缓存;
Chrome 的开发者工具 > 网络 > 禁用缓存;
Debian 的 \opt\php73\etc\php73.ini 与;
opcache.enable=0
opcache.enable_cli=0
我已经添加到我的服务器条目的末尾;
fastcgi_cache_bypass $is_args;
fastcgi_no_cache $is_args;
我在 php 脚本的顶部得到了这个 header;
header("Cache-Control: no-cache");
但我还是搞不懂缓存是从哪里来的。
有人可以推荐我可能会去的其他地方吗?
如果您尝试使用 PHP 停止缓存您的网页,我使用以下代码
//Minimize caching so admin area always displays latest statistics
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
虽然没有什么是真正完整的证据,因为许多 CSS 和其他 JS 文件是独立于 PHP 缓存的,并且在更新后需要刷新才能显示,但还有其他方法可以解决这个问题。
我使用的一个示例是对文件进行哈希处理(使用 php):
$specific_page = '/assets/javascripts/pages/javascript.js';
if(file_exists($specific_page)) {
$html .= '<script src="'.$specific_page.'?v='.hash_file('crc32',$specific_page).'"></script>';
}
这将保留缓存的文件,直到文件被更改。当文件更改时,它会更改哈希值,因此会找到新的更新文件(因为 URL 在技术上已更改)。
同样,没有什么能真正充分证明在客户端防止缓存。
我不确定 php 页面的缓存来自哪里。到目前为止,我已经禁用了缓存;
Chrome 的开发者工具 > 网络 > 禁用缓存;
Debian 的 \opt\php73\etc\php73.ini 与;
opcache.enable=0
opcache.enable_cli=0
我已经添加到我的服务器条目的末尾;
fastcgi_cache_bypass $is_args;
fastcgi_no_cache $is_args;
我在 php 脚本的顶部得到了这个 header;
header("Cache-Control: no-cache");
但我还是搞不懂缓存是从哪里来的。
有人可以推荐我可能会去的其他地方吗?
如果您尝试使用 PHP 停止缓存您的网页,我使用以下代码
//Minimize caching so admin area always displays latest statistics
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
虽然没有什么是真正完整的证据,因为许多 CSS 和其他 JS 文件是独立于 PHP 缓存的,并且在更新后需要刷新才能显示,但还有其他方法可以解决这个问题。
我使用的一个示例是对文件进行哈希处理(使用 php):
$specific_page = '/assets/javascripts/pages/javascript.js';
if(file_exists($specific_page)) {
$html .= '<script src="'.$specific_page.'?v='.hash_file('crc32',$specific_page).'"></script>';
}
这将保留缓存的文件,直到文件被更改。当文件更改时,它会更改哈希值,因此会找到新的更新文件(因为 URL 在技术上已更改)。
同样,没有什么能真正充分证明在客户端防止缓存。