Rails:从 Cloudfront 提供压缩的静态资产
Posted
技术标签:
【中文标题】Rails:从 Cloudfront 提供压缩的静态资产【英文标题】:Rails: Serve compressed static assets from Cloudfront 【发布时间】:2015-07-25 07:41:12 【问题描述】:我正在使用 Rails 4,我的应用程序已部署到 Heroku。
我正在尝试从 Cloudfront 提供压缩资产。 Cloudfront 的分发源指向 Amazon S3,其中存在 js 和 css 的压缩版本。
但是,Cloudfront 不提供这些压缩资产。我读过heroku-deflater
和rack-zippy work
之类的gem,但它们将从Heroku 提供资产,而不是从Cloudfront 提供它们。换句话说,我需要我的 config.serve_static_assets
为 false
,因为我希望 Heroku 不为这些资产提供服务。
如何提供压缩资产?
【问题讨论】:
【参考方案1】:为什么不从 Heroku 为它们提供服务?听我说:
创建一个以 Heroku 的应用程序 url 作为来源的 Cloudfront 分发。然后只需设置config.asset_host = 'http://abcd12345678.cloudfront.net'
。这样 Cloudfront 就会受到攻击,如果它没有压缩资产,它会向 Heroku 索要它。本质上,Heroku 只会将资产服务一次(到 CloudFront)
【讨论】:
以上是关于Rails:从 Cloudfront 提供压缩的静态资产的主要内容,如果未能解决你的问题,请参考以下文章
Rails 3 自动资产部署到 Amazon CloudFront?
来自云端的动态内容 - 我可以从 Rails 中放置 API 结果 (JSON) 吗?
在 S3 和 cloudfront 上使用 rails carrierwave 私有文件
无法通过 Cloudfront 从 EC2 解码 CORS 压缩内容