我的application.js文件名看起来像application-b600352536291bc180983d43e6a2407f.js
。因此,它的名字中有md5缓存克星。我已将静态资产的最大使用期限选项设置为1小时config.static_cache_control = "public, max-age=3600"
。但我注意到浏览器不尊重max-age
标头,总是从服务器重新验证,并为304 Not Modified
进行往返验证。我怎样才能节省往返行程?
请求标头
Request URL:https://blah.com/assets/application-b600352536291bc180983d43e6a2407f.js
Request Method:GET
Status Code:304 Not Modified
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
If-Modified-Since:Sun, 12 Feb 2012 07:36:16 GMT
响应标头
Cache-Control:public, max-age=3600
Connection:keep-alive
Date:Sun, 12 Feb 2012 18:27:48 GMT
Last-Modified:Sun, 12 Feb 2012 07:36:16 GMT
Server:nginx
Vary:Accept-Encoding
Via:1.1 varnish
X-Varnish:499878183
您是按Command + R
还是按Ctrl + R
?浏览器刷新按钮有意重新检查其资产的新鲜度。它假设您正在刷新,因为页面上的某些内容无法正常工作。
如果要测试标题,请访问该页面一次,然后聚焦位置栏,然后按Enter
进行第二次访问。资产应该来自缓存。