如何在Rails 5中禁用turbolink?

Gly*_*yph 54 ruby-on-rails-5

处理websockets时,这一直是一个令人头痛的问题,除了添加bug之外,它还会破坏我的性能.由于ActionCable是我升级的全部原因,我非常想完全摆脱它.

arj*_*bar 80

基本上直接来自这里.它适用于Rails 4,但我相信步骤是一样的.

1)gem 'turbolinks'从Gemfile中删除该行.

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

3)"data-turbolinks-track" => true从app/views/layouts/application.html.erb中删除两个哈希键/值对.

编辑:至少在Rails 5.0.0中,最后一步应该引用而"data-turbolinks-track" => "reload"不是"data-turbolinks-track" => true. 感谢@boddhisattva

编辑:至少从Rails 4.2开始,您可以生成一个没有turbolinks的项目.只需使用这样的东西:

rails new my_app --skip-turbolinks


Gly*_*yph 8

//= require turbolinks从中删除app/assets/javascripts/application.js似乎已经成功了.

我还删除了两个turbolinks参考 app/views/layouts/application.html.erb


lun*_*unr 7

如果您使用的是 Webpacker(Rails 5-6)

  • 删除此行Gemfile并运行bundle

gem 'turbolinks', '~> 5'

  • yarn remove turbolinks

  • 从应用程序包文件中删除这一行app/javascript/packs/application.js

    require("turbolinks").start()

  • data-turbolinks从您的 html 中删除任何数据属性。

改变:

<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
Run Code Online (Sandbox Code Playgroud)

<%= stylesheet_link_tag 'application', media: 'all' %>
<%= javascript_pack_tag 'application' %>
Run Code Online (Sandbox Code Playgroud)