我们习惯于expires max
尽可能长时间地将静态文件缓存在浏览器中。当我们重新部署时,我想强制用户的浏览器转储其缓存文件。有没有办法用 nginx 做到这一点?
答案1
请勿使用,expires max
因为RFC 2616 第 14.21 节其中明确指出:
HTTP/1.1 服务器不应该发送超过一年的过期日期。
但这仅在侧节点上。您有两个选择:
- 更改文件名
- 附加查询字符串
后者经常被各种工具报告为有问题,因为流行的 Squid 代理服务器的旧默认配置是不缓存带有查询字符串的资源[参考文献1,参考文献2]。这是过去的问题,我真诚地希望所有代理管理员自 2008 年以来都更新了他们的 Squid 代理。
找到查询字符串并简单包含文件修改时间。