2

我正在尝试缓存一个在一个站点上成功的 PHP 文件,但是当我在另一个网站上实现代码时它不会被缓存。我用 Firebug 检查了它,我得到了一个200 OK状态,这意味着每次页面刷新时它都会从服务器下载它。

这是我的代码:

$now          = time();
$generatedAt  = gmdate('D, d M Y H:i:s T', $now);
$lastModified = gmdate('D, d M Y 00:00:00 T', $now);
$expiresAt    = gmdate('D, d M Y H:i:s T', strtotime($lastModified) + 8035200);
$maxAge       = strtotime($expiresAt) - strtotime($generatedAt);

header('Last-modified: '.$lastModified);
header('Cache-control: max-age='.$maxAge);

额外信息:

它是从我的另一个站点复制的,我得到了一个304 NOT MODIFIED状态,这意味着它确实被缓存了。

此代码位于文件顶部,没有回显或输出,这意味着尚未发送标头。

我的 .htaccess 文件也配置正确,我没有指定它不应该缓存 PHP 文件。

4

2 回答 2

0

你试过其他浏览器吗?至少可以说,Firefox 的缓存是一大堆* 。此外,.htaccess 不是唯一的 - Apache 配置很可能需要对脚本所在目录的 AllowOverride 指令进行一些调整。

另外,尝试使用 Wireshark 观察网络上发生了什么——发送了哪些标头以及真正收到了哪些标头?

于 2012-12-28T09:18:48.593 回答
-1

我想你应该修复这个Last-modified:参数。

于 2012-12-28T09:20:13.077 回答