WebPageTest抱怨即使我启用了缓存,也没有缓存静态资源

时间:2015-09-20 20:17:00

标签: google-app-engine webpagetest

我正在webpagetest.org上测试我的网站。它给了我一个

enter image description here

然后继续给出这个清单:
利用静态资产的浏览器缓存:63/100
警告 - (2.0小时) - http://stats.g.doubleclick.net/dc.js
警告 - (5.5天) - http://www.bookmine.net/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
警告 - (5.5天) - http://www.bookmine.net/favicon.ico
警告 - (5.5天) - http://www.bookmine.net/js/index.min.js
警告 - (5.5天) - http://www.bookmine.net/js/jquery-ui-1.8.13.custom.min.js
警告 - (5.5天) - http://www.bookmine.net/css/index.css
警告 - (5.5天) - http://www.bookmine.net/js/jquery.form.min.js
警告 - (5.5天) - http://www.bookmine.net/css/jquery-ui-1.8.13.custom.css

有趣的是它确实认识到我启用了缓存(如上所述设置为5.5天),那么它有什么抱怨?我还验证了我在default_expiration: "5d 12h"this链接中设置了app.yaml

  

default_expiration

     

可选。静态文件服务的静态文件的时间长度   如果处理程序,处理程序应该由Web代理和浏览器缓存   没有指定自己的到期日。该值是一串数字   和单位,以空格分隔,单位可以d天,h   数小时,m分钟,s秒。例如,“4d 5h”   将缓存过期设置为文件第一次后的4天和5小时   请求。如果省略,生产服务器将到期时间设置为10   分钟。

     

例如:

     

应用程序:myapp版本:alpha-001运行时:python27 api_version:1   threadsafe:true

     

default_expiration:“4d 5h”

     

处理程序:   重要提示:到期时间将在Cache-Control和Expires HTTP响应标头中发送,因此,文件很可能   由用户的浏览器缓存,以及中间缓存   代理服务器,如Internet服务提供商。一旦文件是   在给定的到期时间内传输,通常没有办法   即使用户清除了自己的缓存,也要将其从中间缓存中清除   浏览器缓存。重新部署新版本的应用程序将不会重置   任何缓存。因此,如果您计划修改静态文件,那么   应该有一个短暂(不到一小时)的到期时间。多数情况   例如,默认的10分钟到期时间是合适的。

我甚至验证了我的网站回复小提琴的回复:

  

HTTP / 200响应默认是可缓存的,除非Expires,Pragma,   或Cache-Control标头存在并禁止缓存。 HTTP / 1.0   Expires Header现在:星期六,26九月2015 08:14:56 GMT

     

HTTP / 1.1 存在缓存控制标头:public,max-age = 475200     public:此响应可以由任何缓存缓存。 max-age:这个   资源将在132小时后到期。 [475200秒]

     

HTTP / 1.1 ETAG标题存在:“74YGeg”

那我为什么要得到D?

添加一些有用的链接:
- http://www.learningtechnicalstuff.com/2011/01/static-resources-and-cache-busting-on.html
- http://www.codeproject.com/Articles/203288/Automatic-JS-CSS-versioning-to-update-browser-cach
- https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching#invalidating-and-updating-cached-responses
- https://developers.google.com/speed/docs/insights/LeverageBrowserCaching
- https://stackoverflow.com/a/7671705/147530
- http://www.particletree.com/notebook/automatically-version-your-css-and-javascript-files/

1 个答案:

答案 0 :(得分:4)

如果缓存过期时间设置少于30天,则WebPagetest会发出警告。您可以通过单击" D"来查看该详细信息。在测试结果中评分并查看" Cache Static"的词汇表。您还可以找到该信息here

如果需要修改缓存的静态javascript文件,可以在文件路径或查询字符串中添加版本号。