首页 文章

以S3网站为原点的CloudFront不提供gzip压缩文件

提问于
浏览
15

AWS now supports gzipping files through CloudFront

我已按照Serving Compressed Files中的所有说明进行操作,但gzipping无法正常工作 .

我将一个S3存储桶设置为CloudFront用作源的网站 .

  • Compress Objects Automatically 已启用

  • 我正在使用正确的内容类型提供文件,例如 application/javascripttext/css

  • 文件在1,000和10,000,000字节之间

  • 据我所知,S3网站提供的文件为 Content-Length

  • 为了更加确定没有缓存任何内容,我都使整个S3存储桶失效并将更新版本的文件上传到S3 .

  • 此外,我使用的网络浏览器Chrome也接受gzip压缩文件 .

尽管如此,我还是无法工作 . 我已经得到了其他一切,包括SSL完美运行,你可以访问这里的网站:https://formulagrid.com/

如果你打开chrome控制台,你会注意到从S3提供的文件都没有被gzip压缩 . 唯一的gzip压缩文件,如谷歌字体是我从其他CDN抓取的 .

1 回答

  • 18

    我今天遇到了同样的错误,并通过向S3存储桶添加CORS规则来解决它 . 此规则确保将Content-Length标头发送到Cloudfront,以便可以对内容进行gzip压缩:

    S3> Bucket>权限> CORS配置

    <?xml version="1.0" encoding="UTF-8"?>
    <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
        <CORSRule>
            <AllowedOrigin>*</AllowedOrigin>
            <AllowedMethod>GET</AllowedMethod>
            <MaxAgeSeconds>3000</MaxAgeSeconds>
            <AllowedHeader>Authorization</AllowedHeader>
            <AllowedHeader>Content-Length</AllowedHeader>
        </CORSRule>
    </CORSConfiguration>
    

    感谢Robert Ellison:http://ithoughthecamewithyou.com/post/enable-gzip-compression-for-amazon-s3-hosted-website-in-cloudfront

    据我所知,这似乎是一个无证件的要求 .

相关问题