【发布时间】:2016-12-03 14:58:33
【问题描述】:
在处理 websocket 时一直很头疼,除了添加错误之外,它还会影响我的性能。由于 ActionCable 是我升级的全部原因,我非常想完全摆脱它。
【问题讨论】:
-
跨页面缓存元素一直是我最头疼的问题。
标签: ruby-on-rails-5
在处理 websocket 时一直很头疼,除了添加错误之外,它还会影响我的性能。由于 ActionCable 是我升级的全部原因,我非常想完全摆脱它。
【问题讨论】:
标签: ruby-on-rails-5
如果您使用的是 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" 部分(只是那个键/值对),而不是整个标签。
基本上直接来自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 开始,您可以生成一个没有 turbolink 的项目。只需使用这样的东西:
rails new my_app --skip-turbolinks
【讨论】:
data-turbolinks-track': 'reload' 而不是 "data-turbolinks-track" => true。我还看到他们指定了相同的键值对 - "data-turbolinks-track" => "reload" 作为 Rails 5 最新资产管道指南的一部分 - guides.rubyonrails.org/…
data-turbolinks-track 链接,在此处添加第一个框中的第一个链接:guides.rubyonrails.org/…。简单地删除 turbolink 链接会导致 javascript 完全停止工作。
从app/assets/javascripts/application.js 中删除//= require turbolinks 似乎已经成功了。
我还删除了 app/views/layouts/application.html.erb 中的两个 turbolinks 引用
【讨论】:
require 是禁用 TurboLinks 而不卸载它的最简单方法。这是一种“评论”它的方法://= xxxrequire turbolinks