質問: Rails 5.0.2 を使用しています。 外部ライブラリ(css、javascript、画像・フォントファイルなど)を vendor/assets 下に配置し、 使用しようとしています。 cssの中には ``` background-image: url(images/XXX.png); ``` のような、画像ファイルにアクセスする記述があります。 development 環境からは問題無く画像が表示されるのですが、 production 環境からだと表示されません。 画像・フォントファイルもプリコンパイルの対象とするために、 「config/initializers/assets.rb」に以下の記述を追記しています。 ``` Rails.application.config.assets.precompile += %w( *.eot *.woff *.ttf *.svg *.otf *.png *.jpg *.jpeg *.gif ) ``` ネットで調べ、 ・cssをsassにして、asset_path関数・image-url関数に書き換える ・画像・フォントファイルは public/assets 以下に置く という解決方法がヒットしました。 しかし、 ・外部ライブラリのため、自分の手で変更を加えたくない ・外部ライブラリは、css・javascript・画像・フォントファイルすべてを一か所にまとめておきたい という理由から、採用したくありません。 以下の記事も全く同じことで悩んでいらっしゃるようですが、回答が得られていませんでした。 >外部ライブラリの CSS 内の url を Asset Pipeline に対応させるには? cssから画像にアクセスする外部ライブラリはたくさんあると思うのですが、 みなさんどのように解決していらっしゃるのでしょうか?
回答: ルート相対パスにすれば('/'スタートの相対パス)ルートからの相対パスになるためこっちのほうが確実なのでは? 参考