Rails 3.1プロジェクトがあり、アセットパイプラインがうまく機能しています。問題は、Sassで画像を参照する必要があるのに、Railsが画像のURLを計算することです。(これは、Railsが画像のGitハッシュをそのファイル名に追加してバストキャッシュに追加する本番環境では特に重要です。)
たとえば、app/assets/stylesheets/todos.css.scss
:
.button.checkable { background-image: url(/assets/tick.png); }
デプロイ(または実行rake assets:precompile
)すると、ファイルはまたは同様のものapp/assets/images/tick.png
に移動されます。public/assets/tick-48fe85c0a.png
これはCSSを壊します。この投稿は2つの提案をします:
- 画像にアセットパイプラインを使用しないでください。代わりに、画像を挿入
public/images/
して直接参照してください。 - CSSにERBを使用し、Railsに画像のURLを処理させます。
ナンバー1は確かに可能性ですが、それは私の画像でキャッシュバスティングが発生しないことを意味します。ファイルの処理にERBではなくSassを使用しているため、2番目が出ています。