【发布时间】:2011-10-31 16:55:57
【问题描述】:
我刚刚将 Amazon 的 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
有人有这方面的经验吗?谢谢
【问题讨论】:
-
如果你刚刚做了:
"http://cdn0#{source.hash % 4}.mysite.com/#{Rails.env}"或"http://#{Rails.env}.cdn0#{source.hash % 4}.mysite.com"?否则,您必须深入研究核心javascript_include_tag和相关代码来自定义路径。 -
我最终做到了。我发现的问题是它破坏了 CSS。如果 css 有一个像这样的图像 url(/images...) 现在是无效的......想法?
标签: ruby-on-rails ruby-on-rails-3 amazon-s3 amazon-cloudfront jammit