我一直想知道我的缓存中出现了什么问题。
我设置了这个标题,以便它不会在网站(html,css,php)文件上缓存内容。
header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
header('Pragma: no-cache'); // HTTP 1.0.
header('Expires: 0'); // Proxies.
所以我继续在我的Mozilla上清除缓存,重新加载页面然后得到了这个:
看起来很好,因为状态是200 OK,现在我编辑了文件 style.css 然后刷新,结果如下:
它说304 Not Modified。我不是专家但不是那意味着它缓存文件?另外,我编辑了 style.css ,但没有出现我的更改。需要按Ctrl + F5重置它。那是为什么?
答案 0 :(得分:0)
延伸自评论:
您在标题上所做的只会影响 资源 - 这很可能是PHP生成的HTML页面。
为了演示,这是一个简化的过程:
Cache-Control: no-cache
;输出内容...... 因此,要让客户端不缓存CSS,您可以:
为HTTP服务器配置中的所有CSS添加其他标头。 Apache中的示例:
<FilesMatch "\.css$">
Header add Cache-Control no-cache
</FilesMatch>
使用PHP重新分发CSS:
<?php
header("Content-Type: text/css");
header("Cache-Control: no-cache");
?>
body {
/* ... */
}
如果您不介意在每次编辑时修改HTML(或者如果您使用某种支持此功能的版本控制),您可以使HTML看起来像这样:
<link rel="stylesheet" type="text/css" href="style.css?20131111" />