1

我的 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">

但是已经禁用了这些以检查它们是否在干扰,但启用或禁用并没有什么区别。

感谢所有帮助!

4

2 回答 2

3

FireFly 中的 headers 输出仍然是 Cache-Control private,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() 将覆盖之前设置的任何标题,因此可能是在您的代码行之后设置了某些内容,因为您的行应该覆盖之前的任何标题。

您需要找出设置这些“私有”缓存控制标头的内容并禁用/注释它,否则它将不起作用。也许稍后在您的代码中的其他部分?

于 2012-09-26T10:42:24.407 回答
1

将缓存到期日期设置为旧日期。

header( 'Expires: Fri, 01 Jan 2010 00:00:00 GMT' );
于 2012-09-26T10:18:53.513 回答