Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.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
Ruby on rails S3服务于gzip资产。CloudFront没有。为什么?_Ruby On Rails_Heroku_Amazon Web Services_Amazon S3_Amazon Cloudfront - Fatal编程技术网

Ruby on rails S3服务于gzip资产。CloudFront没有。为什么?

Ruby on rails S3服务于gzip资产。CloudFront没有。为什么?,ruby-on-rails,heroku,amazon-web-services,amazon-s3,amazon-cloudfront,Ruby On Rails,Heroku,Amazon Web Services,Amazon S3,Amazon Cloudfront,我为我的静态资产设置了一个AmazonS3存储桶,并将CloudFront配置为指向它。我在Heroku上有一个Rails 4应用程序 当我设置config.action\u controller.asset\u host=“https://“+Figaro.env.FOG\u目录+”.s3.amazonaws.com“,我就得到了gzip资产 当我设置config.action\u controller.asset\u host=“http://“+Figaro.env.CLOUDFRONT\

我为我的静态资产设置了一个AmazonS3存储桶,并将CloudFront配置为指向它。我在Heroku上有一个Rails 4应用程序

当我设置
config.action\u controller.asset\u host=“https://“+Figaro.env.FOG\u目录+”.s3.amazonaws.com“
,我就得到了gzip资产


当我设置
config.action\u controller.asset\u host=“http://“+Figaro.env.CLOUDFRONT\u目录+”.CLOUDFRONT.net“
”时,我没有得到gzip资产。为什么不呢?

更新:

CloudFront现在可以压缩文件,即使源服务器返回未压缩的文件。这仅适用于1KB和10MB之间的设备。我在下面发布的原始链接中提供了完整的详细信息


原始答案:

CloudFront本身不执行任何压缩/解压缩。如果S3上有压缩文件,而CloudFront中有未压缩文件,则很可能是缓存问题,因为CloudFront提供的是较旧的未压缩文件版本。尝试在CloudFront上删除这些文件

您可以在此处了解有关CloudFront压缩的更多信息:


这是一个缓存问题。我删除了CloudFront发行版,并创建了一个具有相同S3 bucket和备用域名的新发行版。在部署新分发版并更新DNS记录后,一切正常。谢谢FWIW,这已经改变了。您现在可以启用CF自动压缩一些文件:我有一个类似的问题:我们的资产通过cloudfront位于S3上。如果我只使用url请求资产(在curl中),我会得到最新版本。如果我通过--compressed,我会得到它的一个旧版本:就好像压缩版本(可能是由s3创建的,因为cloudfront不做任何gzip)正在缓存在某个地方,当我通过--compressed时,我得到的是它,而不是新文件。你遇到过这个吗?@MaxWilliams已经好几个月了,但是没有,我不记得遇到过这个。我最终用相同名称的gzip版本替换了我的所有资产,而不是“application.css”和“application.css.gz”,而是“application.css”(重命名的gzip文件)。我的问题是S3配置:它被设置为“自定义缓存选项”由于当时我无法理解的原因,这意味着它没有正确地为压缩的资源提供服务。谢谢回复@麦克斯·威廉姆斯:当然,很高兴你能成功!