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

この応答を見てみましょう:Rails3で動的assets_hostを構成します

あなたがやりたいと思うのは、ページが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 に答える