2013-07-16 40 views
0

我在Rails 3中有一個遺留項目。升級到Rails 4時,我想測試turbo鏈接,但似乎無法使其工作。我已將「turbolinks」寶石添加到Gemfile中,並且將//= require turbolinks添加到app/assets/javascripts/application.js,然後重新啓動服務器。故障排除Turbolinks

從Chrome中的網絡請求活動可以看出,所有頁面仍會進行整頁刷新。

編輯:我跟着其中一個答案中建議的小Turbolinks測試。我添加了一個空白的演示控制器,以及page1,page2的視圖。如果Turbolinks正常工作,turbolinks應該被視爲網絡請求的發起者,並且test.js不應該被加載。

這個小例子失敗,因爲test.js正在嘗試加載,整個頁面刷新,並且啓動程序仍然不turbolinks。

page1.html.erb

<html> 
    <title>Page 1</title> 
    <body> 
    <h1>Page 1</h1> 
    <a href="/test_turbo/page2">Page 2</a> 
    </body> 
</html> 

page2.html.erb

<html> 
    <title>Page 2</title> 
    <script type="text/javascript" src="test.js"></script> 
    <body> 
    <h1>Page 2</h1> 
    </body> 
</html> 

回答

1

看看這個Turbolinks screencast

整個頁面仍然呈現並返回給瀏覽器,但只有主體被替換。

您可以檢查以確保他們有兩頁工作。應該加載頁面,但是當你檢查頁面的頭部時,它不應該包含測試JavaScript文件。讓我們知道它是否仍然無法正常工作。

<html> 
    <title>Page 1</title> 
    <body> 
    <h1>Page 1</h1> 
    <a href="/page2">Page 2</a> 
    </body> 
</html> 

頁2

<html> 
    <title>Page 2</title> 
    <script type="text/javascript" src="test.js"></script> 
    <body> 
    <h1>Page 2</h1> 
    </body> 
</html> 
+0

'test.js'被加載,所以不被使用Turbolinks。我把它放在演示控制器中,並將page1.html.erb和page2.html.erb添加到視圖中。該應用程序現在沒有使用資產管道,這是否與此有關? – John

+0

想通了。在dev env中,資產正在從public/assets/application.js中錯誤加載,而不是從'app/assets/javascripts/application.js'加載turbolinks。 – John