Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 3到Amazon CloudFront的自动资产部署?_Ruby On Rails_Ruby On Rails 3_Ruby On Rails 3.1_Amazon Cloudfront - Fatal编程技术网

Ruby on rails Rails 3到Amazon CloudFront的自动资产部署?

Ruby on rails Rails 3到Amazon CloudFront的自动资产部署?,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,amazon-cloudfront,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,Amazon Cloudfront,Rails 3.1中是否有一个gem或方法可以自动将资产上传到amazon cloud front,并使用这些资产而不是本地托管的资产?我想手动上传编译后的资产,然后更改Rails应用程序配置以使用该资产主机很容易,但是当资产被修改时,上传到CloudFront需要再次手动完成。有什么好办法吗?看一看-我们只是在S3上使用它,但我想一旦资源在S3上,CloudFront部分就很容易了 它最终成为一个rake任务,您只需添加它以在部署过程中执行。另一个选项是,自述文件中有一个将其用于cloudfr

Rails 3.1中是否有一个gem或方法可以自动将资产上传到amazon cloud front,并使用这些资产而不是本地托管的资产?我想手动上传编译后的资产,然后更改Rails应用程序配置以使用该资产主机很容易,但是当资产被修改时,上传到CloudFront需要再次手动完成。有什么好办法吗?

看一看-我们只是在S3上使用它,但我想一旦资源在S3上,CloudFront部分就很容易了

它最终成为一个rake任务,您只需添加它以在部署过程中执行。

另一个选项是,自述文件中有一个将其用于cloudfront的示例。 它应该适用于Rails3.1,但我只在3.0.x上使用过它


Ss John说,所有的解决方案最终都将是一个rake任务+一点逻辑来改变rails中的资产路径

如果您使用Cloudfronts“自定义源”选项,则无需上传任何内容,Cloudfront将在需要时从您的服务器获取资产。有关此设置的详细信息,请参阅:


一定要在github上查看资产同步。或者我们的Heroku dev中心的文章

使用asset\u sync与CDN自定义源站相比,性能有了相当大的提高,让您的应用程序在生产中惰性地编译资产,或者直接从应用程序服务器上为其提供预编译的服务。但我要说的是。我写的

  • 使用asset_sync和S3,您可以预编译资产,这意味着所有资产都已准备就绪,可以立即在资产主机/CDN上提供服务
  • 您只能在预编译时在application.rb中需要:assets捆绑包,以节省生产中的内存
  • 您的应用程序服务器不会因资产请求而受到攻击。你知道,你可能会在这上面花费昂贵的计算时间。计算
  • 默认情况下,将设置最佳实践HTTP缓存头
  • 您可以通过一个额外的配置启用自动gzip压缩

…对于那些使用elastic beanstalk的人来说,由于默认情况下您的资产可能是预编译的,nginx服务器将向cloudfront提供这些资产,因此这种方法不会产生什么后果(请求不会命中rails应用程序)。您知道默认情况下不会设置HTTP缓存头的原因吗?现在是否必须在资产同步配置文件中手动设置它们?类似于config.custom\u headers={'Cache Control'=>'max age=315576000','Expires'=>1.year.from\u now.httpdate}我似乎无法让我的设置任何内容…任何帮助都非常感谢