我通过 S3 和 Cloudfront 提供静态内容。但是,Google Pagespeed 标记为未指定缓存 header ,因此我转到我的云端设置并进行了更改。
部署部署后。 Google Pagespeed 仍然无法识别。
我还为 S3 上的对象添加了缓存控制。当我直接从 S3 命中对象时,我可以看到响应 header ,但是当我使用云端 URL 命中时,我看不到缓存控制 header 。
这是我得到的回复
Accept-Ranges:bytes
Age:641
Connection:keep-alive
Content-Length:44715
Content-Type:image/png
Date:Fri, 17 Jul 2015 18:39:50 GMT
ETag:"e0b19573b90781f60f8865705c80f11d"
Last-Modified:Fri, 17 Jul 2015 17:50:27 GMT
Server:AmazonS3
Via:1.1 (CloudFront)
X-Amz-Cf-Id:
X-Cache:Hit from cloudfront
最佳答案
根据您提供的 HTTP 响应 header 的年龄,该对象似乎已在缓存中停留了 641 秒。可能是您在缓存对象后将 Cache-Control header 添加到 S3 的情况。我会推荐invalidating对象并再次提出您的请求。您应该注意到您的 X-Cache header 将是一个未命中,这意味着 CloudFront 已到达您的来源。
Once the distribution is deployed. Google Pagespeed still doesn't recognize that.
CloudFront 不会修改您的 Cache-Control header 。这些值只会影响 CloudFront 缓存对象的时间。
关于http - 如何为云端设置缓存 header 以便 Google Pagespeed 识别它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31525808/