【发布时间】:2017-07-13 03:01:13
【问题描述】:
我使用 HTML meta 标记禁用缓存,直到我了解到这仅在文件在本地提供时才有效,因此我通过推荐使用标题禁用缓存,方法是将其放在页面顶部:
header("Cache-Control: no-cache, no-store, must-revalidate");
header("Pragma: no-cache");
header("Expires: 0");
我找不到答案,问起来可能很愚蠢,但这也不会禁用资源缓存,是吗?我在我的开发人员工具中查看网络选项卡,并注意到页面每次都在加载,但 CSS 和 Javascript 等资源仍在从缓存中加载,这让我相信阻止页面缓存并不意味着防止页面资源被缓存,但我不知道这是不是真的。所以我所做的是向资源添加一些版本控制,如下所示:
<link rel="stylesheet" href="css/style.css?version=1">
这阻止了资源被缓存,这是我想要的,但是在阅读了更多内容之后,似乎可以使用额外的标头来定位某些文件格式并阻止它们被缓存,这将产生相同的结果结果作为版本控制,尽管方式不同。
我对此的理解是否正确和/或混合方法是不好的做法?
【问题讨论】:
-
也许您在 Web 服务器级别进行缓存?在 IIS 中你有这个选项,几乎可以肯定其他人也有
标签: php html caching response-headers