8

我正在使用 assets_sync 运行 Rails 3.2。

创建了我的 css 和 js 的 gz 版本。CloudFront 不提供 gzip 版本,即使请求 gzip,deflate 的标头也是如此。

我也尝试过config.gzip_compression = trueasset_sync.rb但 CloudFront 仍在提供未压缩版本。我已确认我可以访问ABC.cloudfront.net/XYZ.css.gz

4

2 回答 2

4

您的 CloudFront 分配的来源是 S3 存储桶吗?如果是这样,问题是 S3 没有Accept-Encodings正确处理标头:https ://github.com/rumblelabs/asset_sync/issues/153

该问题中概述了一些潜在的解决方案。您可以默认提供 gzip 文件,因为大多数浏览器(不包括某些移动浏览器)都会正确处理它,或者您可以尝试此处列出的解决方案

另一种可能的解决方案是使用 Varnish 缓存层作为 CloudFront 分配的自定义源:

互联网 -> CloudFront -> 清漆 -> S3 存储桶

当请求进入 CloudFront 时,如果尚未缓存在 CloudFront 中,它将被转发到 Varnish。Varnish 将从 S3 存储桶中获取未压缩的文件,按照标题的指示对其进行压缩,然后将文件发送回 CloudFront 进行缓存。

于 2013-03-04T19:13:36.273 回答
1

heroku config:add ASSET_SYNC_GZIP_COMPRESSION=true为你的应用程序设置了吗?

于 2013-02-26T20:03:11.203 回答