【发布时间】:2014-07-16 09:43:10
【问题描述】:
我对浏览器缓存相当陌生。我试图让 Chrome 使用查询参数永久缓存任何静态文件(出于缓存破坏目的)。我已经将 Cache-Control 和 Expires 标头设置为未来,这应该足以说“永远缓存这个”。生成的响应头:
HTTP/1.1 200 正常 缓存控制:公共,最大年龄=315360000 连接:保持活动 内容编码:gzip 内容类型:application/x-javascript 日期:格林威治标准时间 2014 年 7 月 16 日星期三 09:29:54 最后修改时间:2014 年 7 月 16 日星期三 03:44:14 GMT 服务器:nginx/1.6.0 传输编码:分块 变化:接受编码Firefox 和 Safari 似乎对所有 cachebusted(?v= 查询参数)文件都尊重这一点。 Chrome 主要遵循指令,除了 Javascript。大多数情况下,它使用 If-Modified-Since 标头进行请求,而不是从缓存中加载。有时其中一个会从缓存中加载,而另一个会产生导致 304 的请求。通常从新选项卡加载页面时,它会从缓存中加载,但如果您在地址栏中按 Enter 键则不会。
我观察到其他网站使用我认为完全相同的标题,并且文件总是从缓存中加载。即使您进行刷新,它们中的一些也会从缓存中加载。
我知道缓存行为有些不可预测,但我想确保我没有监督导致 Chrome 这样做的事情?
【问题讨论】:
标签: google-chrome caching nginx