Rails 3自动资产部署到Amazon CloudFront吗?

Rails 3 automatic asset deployment to Amazon CloudFront?

Rails 3.1中是否有可用的gem或方法可以自动将资产上传到Amazon Cloud Front并使用这些资产而不是为本地托管的资产提供服务?我想手动上传已编译资产然后更改Rails应用程序配置以使用该资产主机很容易,但是修改资产后,需要再次手动上传到Cloud Front。有什么好的办法吗?


绝对在github上签到asset_sync。或我们的Heroku开发中心文章,关于在Heroku上将CDN资产宿主与Rails 3.1一起使用。

使用asset_sync与CDN自定义来源相比,性能得到了很大的提高,使您的应用程序可以在生产中懒惰地编译资产或直接在应用程序服务器上提供预编译的资产。但是我会这样说。我写的。

  • 使用asset_sync和S3,您可以预编译资产,这意味着所有资产已准备就绪,可以立即在资产主机/ CDN上使用
  • 您仅需在预编译时在application.rb中使用:assets捆绑包,即可在生产中节省内存
  • 您的应用服务器永远不会受到资产请求的打击。您知道,您可能会花费大量的计算时间。计算。
  • 默认情况下,最佳实践HTTP缓存标头均已设置
  • 您可以通过一项额外的配置启用自动gzip压缩


如果您使用Cloudfronts或"自定义来源"?选项,您不需要上传任何内容,Cloudfront会在需要时从您的服务器获取资产。有关设置的详细信息,请参见:

http://blog.ertesvag.no/post/10720082458


看看https://github.com/rumblelabs/asset_sync-我们仅在S3上使用它,但是我想一旦资产放在S3上,CloudFront的部分就很容易了。

这最??终是一个rake任务,您只需添加它即可在部署过程中执行。


另一个选项是https://github.com/moocode/asset_id,自述文件中有一个示例将其与cloudfront一起使用。
它应该可以在rails 3.1上工作,但是我只在3.0.x上使用过它。

约翰·约翰说,所有解决方案最终都将成为一项艰巨的任务,需要一些逻辑来改变Rails中的资产路径。