6

たとえば、私の Rails アプリケーションには次のようなものがあります。

.wax_seal {
  background: url("wax-seal-small.png");
  display: block;
  height: 100px;
  margin: 0 auto;
  width: 92px;
}

.wax_seal:active {
  background: url('wax-seal-small-broken.png');
}

そして私のconfig/environments/production.rbファイルでは:

# Disable Rails's static asset server (Apache or nginx will already do this).
config.serve_static_assets = true

アセットのコンパイルを手動で呼び出します。

bundle exec rake assets:precompile

ファイルは、名前の末尾にハッシュを付けて作成されます。

wax-seal-small-Uuhqwduhqwdoi234983jewf.png

したがって、これは機能しません:

background: url("wax-seal-small.png");

しかし、これはうまくいきます(Chromeで手動で入力すると):

background: url("wax-seal-small-Uuhqwduhqwdoi234983jewf.png");

ここで欠けているステップは何ですか? CSS ルールにその小さなハッシュを追加するにはどうすればよいですか?

追加config.assets.compile = trueするconfig/environments/production.rbと機能しますが、Rails ガイドで、パフォーマンスが大幅に低下するため、悪い習慣であると読みました。

4

2 に答える 2

4

sass以下を使用している場合は、使用できますbackground: image-url("wax-seal-small.png");

これにより、ファイルへのパスが先頭に追加され、キャッシュバスター ハッシュが追加されます。

それ以外の場合は、/assets ディレクトリを参照してください。例えばbackground: url("/assets/wax-seal-small.png");

于 2013-06-01T22:13:45.133 に答える