2013-02-22 69 views
1

我在.htaccess中为浏览器设置了一个CacheControl声明来缓存静态文件。如何使静态文件上的HTTP缓存头失效

在连续部署时,如何定义一条指令来使客户端的缓存失效?

<Files *.js> 
Header add "Cache-Control" "max-age=604800" 
</Files> 

回答

0

我如何定义无效客户端的缓存的指令?

简短的回答是,你不能 - HTTP协议不支持它。

但有一种偷偷摸摸的方式来做到这一点:创建一个清单html页面,列出所有可缓存的资产,将其加载到iframe中,然后使用Javascript对iframe进行刷新。这将为服务器创建内容的条件请求 - 并且如果您的服务器响应2xx状态,则提供的新内容将覆盖缓存。

然而,仅仅因为它的可能不会让它成为一个好主意(很多原因 - 除非你想支付我来提供咨询和培训几个星期,否则不要问); 不要在家里试试!

普遍的共识是,管理缓存的最佳方式是为达到内容与非常长TTL但embed versioning information in the URL