1

次のコードを使用して、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 -%>

これらのページ固有のアセットをプリコンパイルする方法を教えてもらえますか?

4

1 に答える 1

2

config / environment/production.rbのページ固有のアセットをプリコンパイルする必要がありました

config.assets.precompile += [ "pagespecific.js", "pagespecific.css"]
于 2013-01-07T19:48:59.687 に答える