4

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

在此处输入图像描述

然后继续给出这个列表:
利用浏览器缓存静态资产: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"集合:app.yaml

default_expiration

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

例如:

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

default_expiration: "4d 5h"

handlers:重要提示:过期时间将在 Cache-Control 和 Expires HTTP 响应头中发送,因此,文件很可能被用户的浏览器以及 Internet Service Providers 等中间缓存代理服务器缓存。一旦文件在给定的到期时间下传输,通常无法将其从中间缓存中清除,即使用户清除了自己的浏览器缓存。重新部署应用程序的新版本不会重置任何缓存。因此,如果您打算修改静态文件,它应该有很短的(不到一小时)到期时间。在大多数情况下,默认的 10 分钟到期时间是合适的。

我什至验证了我的网站在提琴手中返回的响应:

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

HTTP/1.1 Cache-Control Header 存在: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 和 javascript 文件/

4

1 回答 1

4

如果设置的缓存过期时间少于 30 天,WebPagetest 会发出警告。您可以通过单击测试结果中的“D”级并查看“静态缓存”的词汇表来查看该详细信息。您还可以在此处找到该信息。

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

于 2015-09-21T02:58:42.897 回答