使用CDN和https的问题:( Rails)

时间:2012-11-07 12:51:43

标签: ruby-on-rails cdn

在我的Rails应用程序中,我使用过CDN。我已经通过将cdn url添加到

来配置cdn
config.action_controller.asset_host = "http://cdn.mydomain.com"

在production.rb文件中。

现在我正在尝试https://某些网页,例如登录和注册

但是,由于资产是从CDN提供的,因此https与cdn路径冲突。

我的解决方案是让登录和注册页面不使用cdn资产并指出 作为本地资产。

我的解决方案是否正确?如果是这样,我如何限制某些布局文件使用CDN资产路径?

2 个答案:

答案 0 :(得分:2)

我会看一下这个回复:Configure dynamic assets_host in Rails 3

我认为您想要做的是根据您的网页是否通过https提供,将asset_host更改为动态。类似的东西:

config.action_controller.asset_host = Proc.new { |source, request|
"#{request.ssl? ? '/assets' : 'http://cdn.mydomain.com'}"

}

我的语法可能有些偏差,因为我在运行中输入它但它应该接近你需要的。

答案 1 :(得分:0)

注意:即使我运行https版本,代码request.try(:ssl?)也始终返回false。 我正在努力寻找解决方案,一旦找到它就会发布。

找到解决方案

config.action_controller.asset_host = Proc.new do |*args|
  source, request = args
  if request.try(:ssl?)
    'https://mydomain.com'
  else
    'http://cdn.mydomain.com'
  end
end