次のコードを使用して、Railsアプリの特定のページにカスタムcssとjavscriptを含めました。
<% content_for :header do -%>
<%= stylesheet_link_tag 'mycustompagecssfile' %>
<%= javascript_include_tag 'customjavascriptfile' %>
<% end -%>
ローカルホストで動作しますが(アプリケーションレイアウトにyieldを含めた<%= yield(:header) if content_for(:header) %>
場合)、Herokuにプッシュするとアプリが壊れます。
これらのcssファイルとjavascriptファイルは1ページにしか含まれていないため、マニフェストファイルには含めていません(これらのスタイルをどこにでも表示したくないため)。実際、require tree
コードを削除しました。
//= require jquery
//= require jquery_ujs
//= require common
//= require live-comment-preview
//= require_self
したがって、アセットをプリコンパイルするかどうか(herokuで実行する必要があります)、これらのページ固有のcssファイルとjavascriptファイルはプリコンパイルされていないため、herokuアプリが壊れます(推測しています)
herokuログには、内部サーバーエラーがあると記載されています
Processing by HomeController#index as HTML
2013-01-07T17:13:58+00:00 app[web.1]: Completed 500 Internal Server Error in 25ms
問題を引き起こしているのは(ルビーコードではなく)アセットであると確信しています。ページでこれを実行する(つまり、アセットを削除する)のと同じように、問題はありません。
<% content_for :header do -%>
<% end -%>
これらのページ固有のアセットをプリコンパイルする方法を教えてもらえますか?