1

アセットパイプラインがどのように機能するかについて混乱しています。aloha-railsと呼ばれるgemを使用しており、次のCSSルールがあります。

button.aloha-button {
    background: url("../img/base.png") no-repeat scroll 0 0 transparent !important;
}

ローカルで実行すると、そのルールはファイルにあります。

http://local.dev/assets/aloha/css/aloha.css?body=1

そして、私は画像を見ることができます、それはこのアドレスからロードされます:

http://local.dev/assets/aloha/img/base.png

しかし、herokuで実行すると、ローカルでアセットをプリコンパイルすると、cssルールがapplications.cssからロードされますが、ルールはまだ../img/base.pngであるため、イメージは次の場所からロードされます。

http://server.herokuapp.com/img/base.png

そしてそれは存在しないので、404エラーが表示され、画像が表示されません。

4

2 に答える 2

0

次のように記述します。パスの前のを
削除します。dots(..)

button.aloha-button {
 background: url("/img/base.png") no-repeat scroll 0 0 transparent !important;
}


まだ動作していない場合はお知らせください。

于 2012-12-15T04:55:38.067 に答える
0

アセットのプリコンパイルによって各ファイル名の末尾にハッシュが追加される本番環境で画像アセットにアクセスするにはimg-url、css の拡張子が .scss または .sass の場合は sass-rails が提供するヘルパーを使用する必要があります。asset_pathスタイルシートのファイル名の末尾に .erb を追加する場合は、ヘルパーを使用します。

button.aloha-button {
    background: image-url("/img/base.png") no-repeat scroll 0 0 transparent !important;
}

aloha-rails gem ではこれができないようです。おそらく..、パスの前にドロップする必要もあります。

于 2012-12-16T06:26:58.623 に答える