2014-01-10 82 views
0

我想讓我的javascript/coffescript文件僅在使用它們的頁面上加載。所以在我的application.html.erb文件我有下面的代碼在我的腦海rails content_for not working

<%= 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(:樣式表)的東西繼續存在甚至儘管我不希望它。如果我做一個手動刷新頁面上的everythign追溯到恢復正常,直到我訪問頁面C.我甚至試圖把這個在我的頁面視圖擺脫的聯繫,仍然沒有很好的

<% content_for(:head) do%> 
<% end%> 

有任何想法嗎?

+0

您是否啓用了Turbolinks? –

+0

是的,我認爲默認情況下它是正確的? – jhlu87

回答

2

啓用turbolinks後,它將無法工作。你需要做的是禁用turbolinks,或者把你的javascript和css放到頁面的主體中。

+0

停用turbolinks後,它仍然不適用於我。 –