4

Rails 3.1 のアセット パイプラインを使用しています。ローカルホストの開発環境では問題なく動作しているように見えますが、エンジン ヤードでは大きな問題が発生しています。

これが私の基本的な問題です。

scss ファイルの 1 つに背景の画像を含めると、次のようになります。

      a {
        color: #3c7f8b;
        font-weight: bold;
        padding-left: 35px;
        font-size: 13px;
        display: block;
        background: white url(shade.png) top right;
        &:hover {
          color: #222222;
          background: white url(shade2.png) top right; }
        &.on {
          color: #222222;
          background: white url(shade2.png) top right; } } }

次の問題が発生します: アセットをプリコンパイルしたにもかかわらず、ブラウザーは存在する実際のファイルでは/assets/shade.pngなく、どちらを要求します。/assets/shade-FINGERPRINT.png

.scss ファイル内のアセット フォルダー内の画像を参照することで、この問題を修正できる方法を知っている人はいますか?

4

3 に答える 3

4

Rails 3.1でscssを使用する場合は、urlではなくimage-urlを使用して画像を参照する必要があります。

また、sass-railsはアセットパイプラインを操作するためにアセットメソッドをオーバーライドするため、sass-railsの前にコンパスをロードするようにしてください。

最後に、capistranoを使用してデプロイしている場合は、追加します

load 'deploy/assets'

デプロイ時にアセットのコンパイルを有効にします。

于 2011-08-29T03:37:03.980 に答える
2

この投稿の「tybro0103」からの回答を確認してください - Rails 3.1 and Image Assets

基本的に、ファイルを scss から scss.erb に変更してから、asset_path ヘルパー メソッドを使用します。

デプロイ前にプリコンパイル

免責事項:私はこれを自分で試したことはありません

于 2011-07-13T18:24:44.693 に答える
-1

qnm実は image_url ヘルパーにエラーがあると思います。彼らがそれを修正したかどうかはわかりませんが、「画像」の説明が記載されたasset_urlを使用することをお勧めしました。

つまり、asset_url("some.img","image)

于 2011-09-01T14:09:37.757 に答える