在我的Rails应用程序中,我使用过CDN。我已经通过将cdn url添加到
来配置cdnconfig.action_controller.asset_host = "http://cdn.mydomain.com"
在production.rb文件中。
现在我正在尝试https://
某些网页,例如登录和注册
但是,由于资产是从CDN提供的,因此https与cdn路径冲突。
我的解决方案是让登录和注册页面不使用cdn资产并指出 作为本地资产。
我的解决方案是否正确?如果是这样,我如何限制某些布局文件使用CDN资产路径?
答案 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