私はこの動作がバグだと思っていますが、ここでも尋ねています。私は既にスプロケット・レールgithub repoでバグ・レポートを開いた。scssヘルパーメソッドで生成されたアセットパスにアセットプレフィックスが重複しています
アセットプレフィックスに問題があります。私はconfig/initializers/assets.rb
でRails.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
でポスト#インデックス
- ルート経路:【選択図】図クラスと
.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