先日もこれに出くわしました。Railsサーバーをセットアップして、同じサーバー上で独自の素振りの下で複数のRailsアプリを実行できるようにしました。どうやら、bootstrap_and_overrides.css.lessのアセットパスヘルパーにはスプライトの相対パスが含まれておらず、代わりに背景画像のURLが/ suburi/assetsではなく/assetsを指しているようです。
ここで見つけたものに続いて: https ://github.com/rails/rails/issues/3365 アセットをプリコンパイルするときに次のことを行う必要があることを収集できました。
RAILS_RELATIVE_URL_ROOT="/suburi" rake assets:precompile
これにより、プリコンパイル時に環境内の相対ルートが設定され、すべてが正常に機能します。
本当に私をループに陥らせたのは、開発ではすべてがうまく機能したということでした。本番サーバーにプッシュするとすぐに、アイコンが表示されなくなりました。サーバーまたはコードに問題があると考え続けました。ずっと、アセットをプリコンパイルしたときは、素振りを含まないアセットパスヘルパーだけでした。
プリコンパイルを実行する前に、RAILS_RELATIVE_URL_ROOT環境変数に完全なsuburiパスを設定するだけで、機能します。
更新:次を追加することにより、 config/application.rbファイル でこの変数を設定できます
config.action_controller.relative_url_root = '/suburi'
これは、展開時に余分な入力を必要としないため、最良のオプションです。
あなたはここでそれについて読むことができます:
http://guides.rubyonrails.org/configuring.html#configuring-action-controller