私はRails 3.1プロジェクトを持っており、アセットパイプラインがうまく機能しています。問題はSassの画像を参照する必要があることですが、Railsは画像のURLを計算します。 (これはRailsがキャッシュをバストするために、そのファイル名に画像のGitのハッシュを付加生産において特に重要である。)例えばRails 3.1を使用している場合、Sassで参照画像を使用するにはどうすればよいですか?
、app/assets/stylesheets/todos.css.scss
で:
.button.checkable { background-image: url(/assets/tick.png); }
I展開(またはrake assets:precompile
を実行する)場合ファイルapp/assets/images/tick.png
はpublic/assets/tick-48fe85c0a.png
または類似のものに移動されます。これにより、CSSが破損します。 This postは、2つの提案を行います
- を画像の資産パイプラインを使用していない - 代わりに
public/images/
に入れ、それらをあなたのCSSの直接の - 使用ERBを参照すると、Railsが画像URLを仕事しましょう。
数字1は確かに可能ですが、私は自分の画像にキャッシュ・バストすることはできません。 ERCではなくSassを使用しているため、番号2が出力されています。
ちょっとした修正:sassやscss(アンダースコアの代わりにダッシュ)で{_path}ではなく{asset_type} -urlまたは-pathを使用する必要があります(https://github.com/rails/sass-rails#featuresを参照) – ndbroadbent