PHP缓存脚本赢得';t缓存php文件
我试图缓存一个在一个网站上成功的PHP文件,但是当我在另一个网站上实现代码时,它没有被缓存。我用Firebug检查了它,得到了一个PHP缓存脚本赢得';t缓存php文件,php,caching,Php,Caching,我试图缓存一个在一个网站上成功的PHP文件,但是当我在另一个网站上实现代码时,它没有被缓存。我用Firebug检查了它,得到了一个200OK状态,这意味着每次页面刷新时它都会从服务器下载它 这是我的密码: $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 = gmda
200OK
状态,这意味着每次页面刷新时它都会从服务器下载它
这是我的密码:
$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未修改
状态,这意味着它确实得到了缓存
此代码位于文件顶部,没有回音或输出,这意味着尚未发送任何标题
我的.htaccess文件也配置正确,我没有指定它不应该缓存PHP文件。您尝试过其他浏览器吗?至少可以说,Firefox的缓存是一堆热气腾腾的*。另外,.htaccess不是唯一的东西-Apache配置很可能需要对脚本所在目录的AllowOverride指令进行一些调整
另外,尝试使用Wireshark观察网络上的内容-发送哪些标头,真正接收哪些标头?您尝试过其他浏览器吗?至少可以说,Firefox的缓存是一堆热气腾腾的*。另外,.htaccess不是唯一的东西-Apache配置很可能需要对脚本所在目录的AllowOverride指令进行一些调整
而且,尝试使用Wireshark来观察网络上发生的事情-发送了哪些头,真正接收到了哪些头?我想你应该修复这个
上次修改:
参数。我想你应该修复这个上次修改:
参数。你在试图缓存的脚本中使用了会话吗?没有脚本中的会话在我的整个网站中都没有好的。PHP喜欢在涉及会话时发送破坏缓存的头文件。您可以检查并查看请求脚本看到的实际头是什么吗?拥有它们会很有用,并且会使实际发生的事情变得非常明显。header(缓存控制)下面还有一个header,它是:header(内容类型)您可以在Linux或Windows客户端上使用curl-I URL
读取发送的标题。是否在试图缓存的脚本中使用会话?脚本中没有会话,在我的整个网站中也没有会话。好的。PHP喜欢在涉及会话时发送破坏缓存的头文件。您可以检查并查看请求脚本看到的实际头是什么吗?拥有它们会很有用,并且会使实际发生的事情变得非常明显。在header(缓存控制)下面还有一个header,它是:header(内容类型),您可以在Linux或Windows客户端上使用curl-I URL
来读取发送的header。