2

次のように、CSSで画像の絶対URLを取得したいと思います。

"#{request.scheme}://#{request.host_with_port}/assets/image.png);"

しかし、css.erbではリクエスト属性にアクセスできないと思います。cssでリクエストスキームとhost_with_port属性を取得する方法を他に教えてもらえますか?

4

2 に答える 2

1

アプリケーション構成でasset_hostを定義することにより、「スキーム」(より正確にはプロトコル)、ホスト、およびポートを定義できますが、この定義はすべてのアセットパスに使用されます。

Asset Tag Helpersリクエスト情報に関するRails API ドキュメントを参照すると、次の情報を使用できます。

ActionController::Base.asset_host = Proc.new { |source, request|
      "#{request.protocol}#{request.host_with_port}"
}

アセットの種類ごとに異なる値が必要な場合は、次のようにフィルター基準を定義できます。

ActionController::Base.asset_host = Proc.new { |source|
 if source.starts_with?('/images')
   "http://images.example.com"
 else
   "http://assets.example.com"
 end
}
于 2013-01-06T00:00:39.937 に答える
0

背景画像やその他のアセットの絶対 URL を使用して css を定義できます。したがって、このHow to get absolute image paths in your css files using sass/scssに従って動的に生成できます。

CSS

body {
  background-image: image-url(background.png);
}

環境ファイルで、自分のものに変更します

config.action_controller.asset_host = "http://your.domain.com/"

次に、css は次のようになります。

body {
  background-image: url(http://your.domain.com/assets/background.png);
}
于 2014-01-14T10:41:48.087 に答える