处理Websockets时总是头痛,这不仅降低了我的性能还导致了错误。由于ActionCable是我升级的主要原因,因此我非常希望完全摆脱它。
处理Websockets时总是头痛,这不仅降低了我的性能还导致了错误。由于ActionCable是我升级的主要原因,因此我非常希望完全摆脱它。
从Gemfile
中移除gem 'turbolinks'
这一行。
从app/assets/javascripts/application.js
中移除//= require turbolinks
这一行。
从app/views/layouts/application.html.erb
文件中移除两个"data-turbolinks-track" => true
键值对。
"data-turbolinks-track" => true
改为"data-turbolinks-track" => "reload"
。感谢@boddhisattva提供信息
编辑:至少在Rails 4.2中,您可以一开始就不使用turbolinks生成项目。只需像这样使用:
rails new my_app --skip-turbolinks
data-turbolinks-track': 'reload'
而不是"data-turbolinks-track" => true
。我还看到他们在这里 - http://guides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets 的最新资产管道指南中指定了相同的键值对 - "data-turbolinks-track" => "reload"
。 - boddhisattvadata-turbolinks-track
链接的位置,添加在此处找到的第一个链接:http://guides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets。仅仅删除turbolink链接会导致JavaScript完全停止工作。 - San Diago从app/assets/javascripts/application.js
中删除//= require turbolinks
似乎解决了问题。
我还在app/views/layouts/application.html.erb
中删除了两个turbolinks引用。
require
是禁用TurboLinks而不卸载它的最简单方法。这里是一种'注释'的方式://= xxxrequire turbolinks
- Chloe如果您正在使用Webpacker(Rails 5-6)
Gemfile
中删除此行并运行bundle
:gem 'turbolinks', '~> 5'
运行yarn remove turbolinks
从应用程序包文件app/javascript/packs/application.js
中删除此行:
require("turbolinks").start()
从html中删除所有data-turbolinks
数据属性。
更改为:
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
<%= stylesheet_link_tag 'application', media: 'all' %>
<%= javascript_pack_tag 'application' %>
当您创建Rails应用程序时,也可以使用以下方式:
rails new app name --skip-turbolinks
完全从application.html.erb中删除turbolinks标签可能会破坏CSS和JS。如果没有加载CSS或JS,请添加以下行代替turbolinks:
<%= stylesheet_link_tag "application", media: "all" %>
<%= javascript_include_tag "application" %>
"data-turbolinks-track" => "reload"
这个键值对,而不是整个标签。 - mltsy