2016-07-29 65 views
28

在處理websocket時,這是一個頭痛的問題,除了增加bug之外,它還會導致我的性能下降。由於ActionCable是我升級的全部原因,我非常想完全擺脫它。如何禁用Rails 5中的turbolinks?

+0

跨頁面元素緩存一直是我最頭痛的問題。 –

回答

49

here基本上筆直。這是Rails 4,但我相信步驟是一樣的。

1)從您的Gemfile中刪除gem 'turbolinks'行。

2)從您的app/assets/javascripts/application.js中刪除//= require turbolinks

3)從app/views/layouts/application.html.erb中刪除兩個"data-turbolinks-track" => true哈希鍵/值對。

編輯:至少Rails 5.0.0最後一步應該參考"data-turbolinks-track" => "reload"而不是"data-turbolinks-track" => true由於@boddhisattva

編輯:至少Rails的4.2,你才能不用turbolinks開始一個項目。只要使用這樣的事情:

rails new my_app --skip-turbolinks

+0

我試圖在Rails 5應用程序中最近刪除turbolinks(準確地說使用Rails 5.0.0.1),我不得不刪除'data-turbolinks-track' :'reload''作爲步驟3的一部分,而不是''data-turbolinks-track「=> true'。我還看到他們已經指定了相同的鍵值對 - '「data-turbolinks-track」=>「reload」'作爲Rails 5的最新資產管道指南的一部分 - http://guides.rubyonrails.org /asset_pipeline.html#coding-links-to-assets – boddhisattva

+0

重要提示:應該有一個步驟4) - 取代剛剛移除的'data-turbolinks-track'鏈接,添加第一個框中的第一個鏈接: http://guides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets。簡單地刪除turbolink鏈接會導致javascript完全停止工作。 –

+0

在部署到Heroku生產服務器時,這並不適合我。 – s2t2

6

app/assets/javascripts/application.js中刪除//= require turbolinks似乎已經成功了。

我也app/views/layouts/application.html.erb同時取出turbolinks引用

+1

刪除/註釋'require'是禁用TurboLink而不卸載它的最簡單方法。這裏有一種方法來'評論'它:'// = xxxrequire turbolinks' – Chloe

2

完全從application.html.erb取出turbolinks標籤可能會破壞CSS和JS。如果沒有加載CSS或JS,請添加以下代碼而不是turbolinks:

<%= stylesheet_link_tag "application", media: "all" %> 
<%= javascript_include_tag "application" %>