Ruby on rails 如何使用CloudFront、Rails和Jammit让CDN为登台和生产环境工作
我刚刚将亚马逊的CLoudfront CDN连接到我们的应用程序上 在staging和production.rb文件中,在rails中所做的只是: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:
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…)这样的图像,它现在是无效的。。。思想?