2014-07-06 72 views
1

我有一個佈局頁面中的標籤塊:Rails的if_content_for不根據變化的變化呈現

# application.html.erb 
... 
<% if content_for? :head %> 
    <%= yield :head %> 
<% end %> 

這裏是產生塊:

# index.html.erb 
... 
<% content_for :head do %> 
    <link rel="stylesheet" type="text/css" href="//cdn.datatables.net/plug-ins/be7019ee387/integration/bootstrap/3/dataTables.bootstrap.css"> 
    <script type="text/javascript" language="javascript" src="//cdn.datatables.net/1.10.0/js/jquery.dataTables.min.js"></script> 
    <script type="text/javascript" language="javascript" src="//cdn.datatables.net/plug-ins/be7019ee387/integration/bootstrap/3/dataTables.bootstrap.js"></script> 
<% end %> 

如果我去直接在索引頁面上執行刷新,或者在索引頁面上執行刷新,將:head塊添加到佈局中。但是,如果我重定向到另一個頁面的索引(例如,在同一個控制器中的new.html.erb或另一個控制器),而沒有先渲染索引,則不會複製:head塊。

我想知道爲什麼會發生這種情況,但我懷疑這與渦輪鏈接有關。

任何輸入表示讚賞。

回答

1

是的,問題是Turbolinks。 Turbolinks只替換頭部的身體和頭銜。其他頭元素保持完好。

如果您想加載外部腳本和樣式表,可以將它們放在主體上。

+0

如果我將這些css和js鏈接複製到佈局會有效嗎? – Khanetor

+0

我只是編輯我的問題與該建議。它會。 –

+0

謝謝。我想索引視圖經常被查看,所以不要使用content_for不好。 – Khanetor