【问题标题】:How to setup cache header for cloudfront so Google Pagespeed recognizes it?如何为云端设置缓存标头以便 Google Pagespeed 识别它?
【发布时间】:2015-10-10 03:00:29
【问题描述】:

我通过 S3 和 Cloudfront 提供静态内容。但是,Google Pagespeed 将其标记为未指定缓存头,因此我转到我的云端设置并更改了它。

一旦分发部署。 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

【问题讨论】:

    标签: http caching amazon-s3 amazon-cloudfront


    【解决方案1】:

    根据您提供的 HTTP 响应标头的 age,看起来该对象已在缓存中停留了 641 秒。可能是您在缓存对象后将 Cache-Control 标头添加到 S3 的情况。我会推荐invalidating 对象并再次提出您的请求。您应该注意到您的 X-Cache 标头将是 Miss,这意味着 CloudFront 已到达您的来源。

    一旦分发部署。 Google Pagespeed 仍然无法识别。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2019-10-04
        • 2016-05-30
        • 2011-02-10
        • 1970-01-01
        • 2019-01-14
        • 1970-01-01
        • 2012-06-30
        • 2014-02-17
        • 2017-11-17
        相关资源
        最近更新 更多