<head>だから、私は私の中に次のコード行を持っていますapp/views/layouts/application.html.erb:
<%= stylesheet_link_tag "front", :media => "all" %>
これは開発では正常に機能しますが、本番環境に切り替えると、プリコンパイルされていないために壊れます。そのため、を実行しますrake assets:precompile。これにより、パブリックディレクトリに多数のファイルが追加されますが、すべてのcssファイルとjsファイルは次のような名前です。
application-digest.extapplication-digest.ext.gzapplication.extapplication.ext.gz
はまたextはのどちらcssかjsであり、digest明らかに異なります。
画像ファイルにはバージョンが付属しname.extていname-digest.extます。
そのため、ページに移動すると、通知が表示されActionView::Template::Errorますfront.css isn't precompiled。
私はコントローラーごとに異なるレイアウトを持っているので(そしてそれが重要な場合はレイアウトをFrontController使用します)、帯域幅の恥ずべき無駄であるため、すべてのコントローラーレイアウト内にすべてのcssまたはjsファイルをapplication.html.erb含めたくありません。
Railsに内部のすべてのファイルを個別にコンパイルするように指示するにはどうすればよいですか?app/assets
config.assets.compile = true内部に設定することでライブコンパイルを使用して問題を「修正」することができましたが、多くのリソースを浪費するため、config/environments/production.rbアセットを処理する最良の方法ではないすべての場所を読み続けています[1] 。
アプリはHerokuでホストされています。
[1]:公式のRuby on Railsガイドページ:「このモードはより多くのメモリを使用し、デフォルトよりもパフォーマンスが低いため、お勧めしません。」