我的index.php页面一直被缓存,显示旧计时器值和其他值,即使我正在使用它:
session_cache_limiter( 'nocache' );
session_start( );
header( 'Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0' );
阻止浏览器缓存页面。我已经检查了Firefly中的标题输出,他们一直在说:
Cache-Control:private, max-age=10800, pre-check=10800
我以前在HTML META中有这个:
<META HTTP-EQUIV="cache-control" content="no-cache" />
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
但是已经禁用了那些以检查它们是否在干扰,但是启用或禁用没有任何区别。
感谢所有帮助!
答案 0 :(得分:3)
FireFly中的标头输出仍然是Cache-Control私有, max-age = 10800,pre-check = 10800,no-cache,must-revalidate, post-check = 0,pre-check = 0
这意味着,因为你设置了这个:
Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0
您的应用/页面中的其他一些组件/配置正在设置:
Cache-Control: private, max-age=10800, pre-check=10800
并将两者发送给最终用户。当浏览器读取它们时,“Cache-Control:private”会覆盖您的值,从而导致页面被缓存。
注意:header() will by default override any headers that are previously set,因此可能会在代码行之后设置,因为您的行应该覆盖之前的任何代码。
您需要找出设置这些“私有”缓存控制标头的内容并禁用/注释,否则它将无法正常工作。也许你的代码后面会有其他部分?
答案 1 :(得分:1)
将缓存过期日期设置为旧日期。
header( 'Expires: Fri, 01 Jan 2010 00:00:00 GMT' );