Rails: How to disable turbolinks in Rails 5?

后端 未结 5 1903
谎友^
谎友^ 2020-12-04 17:45

It\'s a constant headache when dealing with websockets, and it kills my performance in addition to adding bugs. Since ActionCable is the whole reason I upgraded I\'d very mu

相关标签:
5条回答
  • 2020-12-04 17:56

    Basically straight from here. It's for Rails 4, but I believe the steps are the same.

    1) Remove the gem 'turbolinks' line from your Gemfile.

    2) Remove the //= require turbolinks from your app/assets/javascripts/application.js .

    3) Remove the two "data-turbolinks-track" => true hash key/value pairs from your app/views/layouts/application.html.erb .

    Edit: As of at least Rails 5.0.0 the last step should refer to "data-turbolinks-track" => "reload" as opposed to "data-turbolinks-track" => true. Thanks to @boddhisattva

    Edit: As of at least Rails 4.2 you can generate a project without turbolinks to begin with. Just use something like this:

    rails new my_app --skip-turbolinks

    0 讨论(0)
  • 2020-12-04 17:59

    Completely removing the turbolinks tags from application.html.erb might break CSS and JS. add this lines instead of the turbolinks if no CSS or JS is loaded:

    <%= stylesheet_link_tag "application", media: "all" %>
    <%= javascript_include_tag "application" %>
    
    0 讨论(0)
  • 2020-12-04 18:00

    If you are using Webpacker (Rails 5-6)

    • Delete this line from Gemfile and run bundle:

    gem 'turbolinks', '~> 5'

    • Run yarn remove turbolinks

    • Delete this line from application pack file app/javascript/packs/application.js:

      require("turbolinks").start()

    • Remove any data-turbolinks data attributes from your html.

    Change:

    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
    

    to

    <%= stylesheet_link_tag 'application', media: 'all' %>
    <%= javascript_pack_tag 'application' %>
    
    0 讨论(0)
  • 2020-12-04 18:05

    Removing //= require turbolinks from app/assets/javascripts/application.js seems to have done the trick.

    I also removed both turbolinks references in app/views/layouts/application.html.erb

    0 讨论(0)
  • 2020-12-04 18:14

    you can also do it when you create your rails application by using;

    rails new app name --skip-turbolinks
    
    0 讨论(0)
提交回复
热议问题