<head>
だから、私は私の中に次のコード行を持っていますapp/views/layouts/application.html.erb
:
<%= stylesheet_link_tag "front", :media => "all" %>
これは開発では正常に機能しますが、本番環境に切り替えると、プリコンパイルされていないために壊れます。そのため、を実行しますrake assets:precompile
。これにより、パブリックディレクトリに多数のファイルが追加されますが、すべてのcssファイルとjsファイルは次のような名前です。
application-digest.ext
application-digest.ext.gz
application.ext
application.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ガイドページ:「このモードはより多くのメモリを使用し、デフォルトよりもパフォーマンスが低いため、お勧めしません。」