ruby-on-rails - 如何使用 CloudFront、Rails、Jammit 让 CDN 为暂存和生产环境工作

标签 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://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} 将是登台。

关于ruby-on-rails - 如何使用 CloudFront、Rails、Jammit 让 CDN 为暂存和生产环境工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7140343/

相关文章:

ruby - 导轨 : How do I pass custom params to a controller method?

ruby-on-rails - 使用 Ruby on Rails 的 RAD

ruby-on-rails - 模型和表中是否都需要关联?

ruby-on-rails - Cucumber:如何在 Rails 中切换 session (多 session )

ruby-on-rails - 如何将引用列更改为多态?

ruby-on-rails - Amazon EC2 上的弹性 IP 是什么?如果我不使用它可以吗?

flash - 使用 Amazon S3 等 CDN 来控制对媒体的访问

python - 如何使用 csv.DictReader 读取存储在 S3 中的 csv?

ruby-on-rails - 按循环中的值排序

ruby-on-rails - 无法将 Puma 作为服务启动