2014-01-21 65 views
2

因此,在我的Rails 4應用程序中,我有Turbolinks寶石。Turbolinks不工作 - 而是加載頁面兩次

//= require jquery.js 
//= require jquery.turbolinks 
//= require turbolinks 

但是,有些事情似乎是錯誤的。 Turbolinks的意義不在於你不必在開始時加載所有的jquery/css/asset管道。好吧,這似乎沒有發生,並且每次請求新頁面時,它會繼續加載所有jquery,而且甚至使每個頁面加載兩次。如:

Started GET "/" for ip at 2014-01-21 18:55:35 +0200 
*Loads bunch of stuff here* 

Started GET "/" for ip at 2014-01-21 18:55:35 +0200 
*Loads bunch of stuff here* 

Started GET "/assets/jquery.js" 
Started GET "/assetsjquery_ujs" 
Started GET "/assets/litecarousel" 
Et cetera... 

當我註釋掉//= require turbolinks控制檯似乎只顯示一個頁面加載,這是正常的。這可能是什麼原因?

我有許多jQuery的函數$(document).ready,但與jquery.turbolinks這應該就好了。

//編輯:測試了一些東西,它似乎是一個與Chrome相關的錯誤。適用於Firefox。另外,我的gem版本是v.2.2.0。

+0

遇到同樣的問題。必須禁用turbolinks爲特定頁面,以便它不會加載兩次打破我的一些邏輯,但很高興找到原因! – wyclin

+0

是的,我自己做了一點測試,首先它似乎是一個Chrome問題。適用於Firefox。但是,有一個解決方案需要將Turbolinks更新到v.1.3.1。但是,我有(可能你也是)v.2.2.0,問題仍然存在。希望有人對此有更多的信息。將在這裏更新我發現的內容。 – Kasperi

回答

0

您是否已將行<%= javascript_include_tag ... %>放在頁面的<body>標記之間而不是<head>?我曾經從Turbolinks那裏得到各種奇怪的錯誤,這是事業的原因。

+0

隨着turbolinks的腳本必須在''。原因是Turbolinks在更換頁面時通過替換''來工作,並且這樣做會重新執行所有第三方腳本(想象重新評估jQuery),這可能不是您想要的。 https://coderwall.com/p/ypzfdw/faster-page-loads-with-turbolinks – Marklar

+2

這就是我的觀點 - 我告訴他要確保他的腳本在頭部,而不是身體。 – GMA

+0

我的歉意。我誤解了你的答案。 – Marklar