に発生します:
background:url(image_path('awesome-background.gif'))
及び(2)あなたのasset_host
第二引数を(必要とラムダは/ procに設定されていますrequest
)。
引数はrequest
引数を削除するか(実際に使用していない場合)、オプションにして(nil
の場合は処理します)。これは、Ruby 1.9で簡単です(と簡単なはず、ノートを参照してください):
config.action_controller.asset_host = ->(source, request = nil, *_){
# ... just be careful that request can be nil
}
あなたはルビー1.8と互換性を持つようにしたい場合は、デフォルト値を持つパラメータとPROC /ラムダを作成する直接的な方法はありませんが、あなたが使用することができます。
config.action_controller.asset_host = Proc.new do |*args|
source, request = args
# ...
end
それともメソッドを使用してください:
def MyApp.compute_asset_host(source, request = nil)
# ...
end
config.action_controller.asset_host = MyApp.method(:compute_asset_host)
注:
を
- あなたのブロックは、「デフォルトホスト」、あなたは、プロトコルを指定する必要はありません理論的には
"#{request.protocol}#{request.host_with_port}"
- を使用する必要はありませんを意味する
nil
を返すことができます。 //
で始まるURLは、デフォルトのプロトコル(httpまたはhttps)を使用する必要があります。私はIE <= 8 will download the css assets twiceのように "should"と言っています。私はPDFkitの問題に遭遇しました。
だからあなたの特定のケースでは、あなたのasset_host
はのように簡略化することができます。
config.action_controller.asset_host = Proc.new { |source, request = nil, *_|
"//assets#{(source.length % 4) + 1}.example.com" if request && !request.ssl?
}
編集:
bug
feature of Rubyを避けるために、ラムダまたは他の*_
を使用してください。ルビーは1.8.xの場合
ご存知のように、修正が戻りました! –