【发布时间】:2013-02-22 23:58:31
【问题描述】:
我在我的 .htaccess 中设置了一个 CacheControl 声明,供浏览器缓存静态文件。
在连续部署后,如何定义使客户端缓存无效的指令?
<Files *.js>
Header add "Cache-Control" "max-age=604800"
</Files>
【问题讨论】:
标签: apache caching http-headers browser-cache
我在我的 .htaccess 中设置了一个 CacheControl 声明,供浏览器缓存静态文件。
在连续部署后,如何定义使客户端缓存无效的指令?
<Files *.js>
Header add "Cache-Control" "max-age=604800"
</Files>
【问题讨论】:
标签: apache caching http-headers browser-cache
如何定义使客户端缓存失效的指令?
简短的回答是你不能 - HTTP 协议不支持它。
但是有一种偷偷摸摸的方法可以做到这一点:创建一个清单 html 页面,列出所有可缓存的资产,将其加载到 iframe 中,然后使用 Javascript 在 iframe 上进行刷新。这将为服务器创建有条件的内容请求 - 如果您的服务器以 2xx 状态响应,则提供的新内容将覆盖缓存。
然而,仅仅因为它可能并不能使它成为一个好主意(有很多原因 - 不要问,除非你想付钱让我来提供几周的咨询和培训); 不要在家里尝试这个!
普遍的共识是,管理缓存的最佳方式是提供具有非常长 TTL 的内容,但提供给 embed versioning information in the URL。
【讨论】: