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

Rails 3.1中是否有可用的gem或方法可以自动将资产上传到亚马逊云端并使用这些资源而不是本地托管的资源? 我想手动上传编译资产然后更改rails app config以使用该资产主机很容易,但是当修改资产时,需要再次手动上传到云端。 有什么好办法吗?

绝对检查github上的asset_sync 。 或者我们的Heroku开发中心文章在Heroku上使用CDN资产主机和Rails 3.1 。

使用asset_sync与CDN自定义源相比,性能有了很大的提升,让您的应用程序可以在生产中懒洋洋地编译资产,或者直接在应用服务器上预编译它们。 不过我会说。 我写的。

  • 使用asset_sync和S3,您可以预编译资产,这意味着所有资产都可以立即在资产主机/ CDN上提供服务
  • 您只能在预编译中的application.rb中需要:assets bundle,从而节省生产中的内存
  • 您的应用服务器永远不会受到资产请求的影响。 你知道,你可以花费昂贵的计算时间。 计算。
  • 最佳实践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上使用它。

Ss John表示,所有解决方案都将成为一项rake任务+一些改变rails中资产路径的逻辑。