【发布时间】:2013-09-18 14:23:31
【问题描述】:
我为我的静态资产设置了一个 Amazon S3 存储桶,并将 CloudFront 配置为指向它。我在 Heroku 上有一个 Rails 4 应用程序。
当我设置config.action_controller.asset_host = "https://" + Figaro.env.FOG_DIRECTORY + ".s3.amazonaws.com" 时,我会得到压缩的资产。
当我设置 config.action_controller.asset_host = "http://" + Figaro.env.CLOUDFRONT_DIRECTORY + ".cloudfront.net" 时,我没有得到 gzipped 资产。为什么不呢?
【问题讨论】:
-
我有一个类似的问题:我们的资产通过云端在 S3 上。如果我只使用 url 请求资产(在 curl 中),我会得到最新版本。如果我通过 --compressed,我会得到它的旧版本:就好像压缩版本(可能由 s3 创建,因为 cloudfront 不做任何 gzipping)被缓存在某个地方,当我通过 --compressed 我明白了,而不是新文件。你遇到过这种情况吗?
-
@MaxWilliams 已经几个月了,但不,我不记得遇到过这个。我最终用同名的 gzip 版本替换了我所有的资产——而不是“application.css”和“application.css.gz”,我有“application.css”(一个重命名的 gzip 文件)。
-
我的问题原来是 S3 配置:它被设置为“自定义缓存选项”,由于目前我无法理解的原因,这意味着它没有正确地提供压缩资源。感谢回复!
-
@MaxWilliams 当然,很高兴你成功了!
标签: ruby-on-rails heroku amazon-web-services amazon-s3 amazon-cloudfront