简体   繁体   English

S3提供gzip资源。 CloudFront没有。 为什么?

[英]S3 serves gzipped assets. CloudFront does not. Why?

I set up an Amazon S3 bucket for my static assets, and configured CloudFront to point to it. 我为我的静态资产设置了一个Amazon S3存储桶,并将CloudFront配置为指向它。 I have a Rails 4 app on Heroku. 我在Heroku上有一个Rails 4应用程序。

When I set config.action_controller.asset_host = "https://" + Figaro.env.FOG_DIRECTORY + ".s3.amazonaws.com" , I get gzipped assets. 当我设置config.action_controller.asset_host = "https://" + Figaro.env.FOG_DIRECTORY + ".s3.amazonaws.com" ,我得到了gzip资产。

When I set config.action_controller.asset_host = "http://" + Figaro.env.CLOUDFRONT_DIRECTORY + ".cloudfront.net" , I don't get gzipped assets. 当我设置config.action_controller.asset_host = "http://" + Figaro.env.CLOUDFRONT_DIRECTORY + ".cloudfront.net" ,我没有获取gzip资产。 Why not? 为什么不?

UPDATE: 更新:

CloudFront can now compress files even if the origin server returns an uncompressed file. 即使源服务器返回未压缩的文件,CloudFront现在也可以压缩文件。 This only applies to specific file types that are between 1KB and 10MB. 这仅适用于1KB到10MB之间的特定文件类型 The full details are available at the original link that I posted below. 有关详细信息,请参阅我在下面发布的原始链接。


ORIGINAL ANSWER: 原始答案:

CloudFront does not perform any compression/decompression on its own. CloudFront不会自行执行任何压缩/解压缩。 If you have compressed files on S3 and uncompressed files in CloudFront, it's most likely a caching issue where CloudFront delivers an older, uncompressed, version of the files. 如果您在S3上有压缩文件和CloudFront中的未压缩文件,则很可能是缓存问题,其中CloudFront提供较旧的未压缩文件版本。 Try to invalidate those files on CloudFront. 尝试在CloudFront上使这些文件无效

You can learn more about CloudFront compression here: 您可以在此处了解有关CloudFront压缩的更多信息:

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM