2016-06-26 13 views
1

私はこの動作がバグだと思っていますが、ここでも尋ねています。私は既にスプロケット・レールgithub repoでバグ・レポートを開いた。scssヘルパーメソッドで生成されたアセットパスにアセットプレフィックスが重複しています

アセットプレフィックスに問題があります。私はconfig/initializers/assets.rbRails.application.config.assets.prefix = 'myprefix' を設定し、実行した場合:

RAILS_ENV=production rake assets:clobber RAILS_ENV=production rake assets:precompile

私のすべてのプリコンパイルされた資産は、正しいパス(public/myprefix/asset_digest.png)で生成されます。 .erbファイルからアセットを検索すると、パスが正しく生成され、すべてが正しく表示されます。問題は、image-url()で生成されたパスと.scssファイルの同様のメソッドが接頭辞を2回取得することです。

public/myprefix/background_digest.jpgの代わりに、public/myprefix/myprefix/background_digest.jpgで画像を検索しようとしていますが、画像が正しくプリコンパイルされ、public/myprefixフォルダに保存されています。 1つの回避策は、すべての資産をmyprefixからmyprefix/myprefixにコピーすることですが、これに対処するには厄介な方法です。これは、.scssファイルから参照されるアセットに対してのみ発生します。

それは私が新しいアプリケーションでそれを再現しようとした私の設定に問題はありません確認するには:

ルビー:2.3.0
のRails:4.2.6。 application.scssでポスト#インデックス

  • 1つのCSSルールの

    • ルート経路:【選択図】図クラスと
      .background { width: 500px; height: 500px; background-image: image-url('my-background.jpg'); }
    • DIVは、インデックスビュー
    • 移行をポストするために追加構成
      rails new prefixtext -T cd prefixtest rails generate scaffold post title body:string

      db

    • アセット:clobberとasセット:プリコンパイル
    • 開始サーバ
    • すべてのコマンドがRAILS_ENV=production

    が付いている私はまた、スプロケット、レールのバージョン2.3.2を試みたが、同じことが起こります。

    私のマシンはrvmのArchLinuxで、buddyも自分のマシン(最後のUbuntuもrvm)で試してみました。同じことが私のサーバー(CentOS 7 with rvm)で起こりました。 テスト済みのRubyのバージョン:2.3.0、2.1.2、2.1.5。テスト済みのRailsのバージョン:4.2.1、4.2.6

    誰でも何が起こっているのか、また本当にバグです。どうすればそれをさらにテストできますか?ここ は、バグレポートです:https://github.com/rails/sprockets-rails/issues/363

  • 答えて

    0

    あなたが代わりに設定/初期化子/資産の

    Rails.application.config.assets.prefix = 'myprefix' 
    

    を持つの1つの簡単な事...スラッシュ:)

    を忘れてしまいました。RB

    あなたは

    Rails.application.config.assets.prefix = '/myprefix' 
    

    を配置する必要があり、それはそれだ...私はあなたの手順で行った正確に何をしたし、それは私のためにローカルで働いています。

    P.S.私はちょうど私のプロダクションサーバで新しいアプリケーションを立ち上げました。

    関連する問題