Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 如何使用CloudFront、Rails和Jammit让CDN为登台和生产环境工作_Ruby On Rails_Ruby On Rails 3_Amazon S3_Amazon Cloudfront_Jammit - Fatal编程技术网

Ruby on rails 如何使用CloudFront、Rails和Jammit让CDN为登台和生产环境工作

Ruby on rails 如何使用CloudFront、Rails和Jammit让CDN为登台和生产环境工作,ruby-on-rails,ruby-on-rails-3,amazon-s3,amazon-cloudfront,jammit,Ruby On Rails,Ruby On Rails 3,Amazon S3,Amazon Cloudfront,Jammit,我刚刚将亚马逊的CLoudfront CDN连接到我们的应用程序上 在staging和production.rb文件中,在rails中所做的只是: config.action_controller.asset_host = Proc.new { |source, request| if request.ssl? "https://cfIDhere.cloudfront.net" else # Pick a random CDN "http:

我刚刚将亚马逊的CLoudfront CDN连接到我们的应用程序上

在staging和production.rb文件中,在rails中所做的只是:

  config.action_controller.asset_host = Proc.new { |source, request|
    if request.ssl?
      "https://cfIDhere.cloudfront.net"
    else
      # Pick a random CDN
      "http://cdn0#{source.hash % 4}.mysite.com"  
    end
  }
现在的挑战是,生产环境和暂存环境都将其称为:

http://cdn02.mysite.com/assets/application.js
这会产生非常疯狂的问题。使CDN同时适用于Prod和Staging的最佳方法是什么

我希望能够做到这样:

http://cdn02.mysite.com/assets/production/application.js
http://cdn02.mysite.com/assets/staging/application.js

有人有这方面的经验吗?谢谢

我会按环境隔离您的CDN。所以CDN{\d\d}将是生产,然后app stage CDN{\d\d}将是暂存。

如果您刚刚这样做了会怎么样:
“http://cdn0#{source.hash%4}.mysite.com/{Rails.env}“
”http://{Rails.env}.cdn0{source.hash%4}.mysite.com”
?否则,您必须深入到核心
javascript\u include\u标记和相关代码来定制路径。我发现的问题是它破坏了CSS。如果css有一个像so url(/images…)这样的图像,它现在是无效的。。。思想?