26

CSS ファイルでは、次を使用して画像アセットの適切な名前を (フィンガープリントで) 取得できます。

background-image: url(image-url("rails.png"))

しかし、JavaScript ファイルからどのように同じことを行うのでしょうか?

4

2 に答える 2

49

sass ヘルパー メソッドを使用しているようです。

標準の (非 Sass) CSS では、次のようにします。

.class { background-image: url(<%= asset_path 'image.png' %>) }

CSS ファイルには、拡張子に erb を追加する必要があります。

file_name.css.erb

JavaScript の場合、同じ規則が適用されます。

file_name.js.erb

およびファイル内:

var image_path = '<%= asset_path 'image.png' %>'

Railsアセット パイプライン ガイドは、これらの機能の使用方法に関する優れた情報源です。

于 2011-09-12T05:16:53.860 に答える
2

Rails 4 では、js.erbビューを使用する代わりにアセット パイプラインに固執し、gon やその他の手法を使用する代わりに変数を使用して URL を渡すことをお勧めします: Ruby on Rails - Send JavaScript variable from controller to external Javascript資産ファイル

gon:

アプリ/ビュー/レイアウト/application.html.erb:

<head>
  <meta charset="utf-8"/>
  <%= include_gon %>

アプリ/コントローラー/application_controller.rb:

before_filter { gon.path = asset_path 'image.png' }

app/assets/javascripts/file.js.coffee:

alert gon.path

ファイルは起動時に 1 回だけプリコンパイルされ、Rails ではなくサーバーによって提供され、残りの Js と同じ HTTP リクエストで処理されるため、この方法は高速です。

于 2014-11-11T10:39:16.360 に答える