Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http 如何为cloudfront设置缓存头以便Google Pagespeed识别它?_Http_Caching_Amazon S3_Amazon Cloudfront - Fatal编程技术网

Http 如何为cloudfront设置缓存头以便Google Pagespeed识别它?

Http 如何为cloudfront设置缓存头以便Google Pagespeed识别它?,http,caching,amazon-s3,amazon-cloudfront,Http,Caching,Amazon S3,Amazon Cloudfront,我从S3和Cloudfront提供静态内容。但是,Google Pagespeed没有指定作为缓存头的标志,所以我转到cloudfront设置并更改了它 一旦部署了分发版。谷歌Pagespeed仍然没有意识到这一点 我还向S3上的对象添加了缓存控制。当我直接从S3点击对象时,我可以看到响应头,但当我使用CloudFrontURL点击时,我看不到缓存控制头 这是我得到的答复 Accept-Ranges:bytes Age:641 Connection:keep-alive Content-Len

我从S3和Cloudfront提供静态内容。但是,Google Pagespeed没有指定作为缓存头的标志,所以我转到cloudfront设置并更改了它

一旦部署了分发版。谷歌Pagespeed仍然没有意识到这一点

我还向S3上的对象添加了缓存控制。当我直接从S3点击对象时,我可以看到响应头,但当我使用CloudFrontURL点击时,我看不到缓存控制头

这是我得到的答复

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响应头的年龄,该对象似乎已在缓存中641秒。可能是在对象被缓存后将缓存控制头添加到S3中。我会推荐这个物品,并再次提出你的要求。您应该注意到,您的X-Cache头将是一个未命中的,这意味着CloudFront将转到您的源位置

一旦部署了分发版。谷歌Pagespeed仍然没有意识到这一点


CloudFront不会修改缓存控制头。这些值只影响CloudFront缓存对象的时间。

我也有同样的问题。你发帖子已经有一段时间了,但万一有人有类似的问题。。。我认为Toy设置的缓存控制是CloudFront使用的缓存。似乎需要将头单独添加到S3对象中(可以使用命令行递归地完成)