0

在我的 Rails 应用程序中,我使用了 CDN。我已经通过添加 cdn url 来配置 cdn

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

在 production.rb 文件中。

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

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

我对此的解决方案是使登录和注册页面不使用 CDN 资产,并应指向本地资产。

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

4

2 回答 2

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'}"

}

我的语法可能有点偏离,因为我正在即时输入它,但它应该接近你需要的。

于 2012-11-07T14:12:54.590 回答
0

注意:request.try(:ssl?)即使我运行 https 版本,代码也总是返回 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
于 2012-11-08T12:25:57.293 回答