2015-07-20 46 views
4

我正在通过S3和通过Cloudfront提供静态内容。但是,Google Pagespeed标记为未指定缓存标题,因此我会转到我的云端设置并对其进行更改。如何为cloudfront设置缓存标题,以便Google Pagespeed识别它?

enter image description here

一旦分布部署。 Google Pagespeed仍然不认识。

我还将缓存控制添加到S3上的对象。当我直接从S3打到对象时,我可以看到响应头,但是当我使用云端URL时,我看不到缓存控制头。

这里的响应,我得到

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 

回答

1

根据您所提供的HTTP响应头的时代,它看起来像对象已经在缓存641秒。这可能是你在缓存对象后将缓存控制头添加到S3的情况。我会建议invalidating的对象,并再次提出您的要求。您应该注意到您的X-Cache标头将是小姐,这意味着CloudFront已经到达您的原点。

一旦分配被部署。 Google Pagespeed仍然不认识。

CloudFront不会修改您的Cache-Control标头。这些值仅影响CloudFront缓存对象的时间。

1

我遇到同样的问题。自发布以来已经有一段时间了,但如果有人遇到类似的问题......我认为Toy设置的缓存控制是CloudFront使用的缓存。看来头文件需要单独添加到S3对象中(可以使用命令行递归地完成)。

相关问题