javascript/coffescript ファイルを、それらを使用するページにのみロードしたいと考えています。したがって、私のapplication.html.erbファイルには、頭の中に次のコードがあります
<%= yield :head %>
次に、私が持っているJavaScriptをロードしたい特定のビューで
<% content_for(:head) do%>
<%= javascript_include_tag 'application' %>
<% end%>
これは最初はうまくいくようです。JavaScript を入れたくないページに初めてアクセスしたとき、js ファイルへのリンクがありません。ただし、上記のコード ブロックを含むページにアクセスすると、それ以降にアクセスするすべてのページ (たとえば、ホームページ) にリンクが表示されます。その後、ホームページでブラウザを更新すると、リンクが再び消えます...
これ自体は実際には問題ではありませんが、私の application.html.erb ヘッド セクションにもこれがあります。
<style><%= yield :stylesheets %></style>
一部のレイアウトでは、そこに生成される css があります。ここが本当に奇妙になるところです。ページ A には js も追加の css もありません。ページ B には js も追加の css もありません。ページ C には js と追加の css の両方があります。次に、次のことを順番に実行します。
Visit page A => everything is fine
Visit page B => everything is fine (additional css is loaded)
visit page A again => everything is fine (additional css is not loaded)
visit page C => everything is fine (additional css and js loaded)
visit page A again => NOT GOOD!!! (additional css and js still loaded)
どういうわけか、javascript のインクルード タグが原因で、私の content_for(:stylesheets) の内容が、私が望まなくても持続するようになっています。ページ A で手動更新を行うと、ページ C にアクセスするまで、すべてが正常に戻ります。これを自分のページに入れてみました。
<% content_for(:head) do%>
<% end%>
何か案は?