Rails 加载 js 不一致



非常普遍的问题:由于涡轮链接,rails加载js和jQuery非常不一致。不幸的是,像$(document).on("turbolinks:load", function () { code });这样的东西并没有在一致性方面发挥作用。

例如:如果我使用咖啡脚本(如 Rails 光滑滑块(运行内容,一切正常,我在资产树中获得的自定义 js 无法一致地加载。当重新加载页面时,js 就在那里,通过涡轮链接导航有时会使脚本消失/无法加载。

自从我的rails职业生涯开始以来,我就遇到了这个问题,只是无法解决它。即使是像<meta name="turbolinks-cache-control" content="no-cache">这样的东西也没有影响。如何使脚本加载 100% 一致?

我已经尝试了$(document).on("turbolinks:load", function () { code });<meta name="turbolinks-cache-control" content="no-cache">

我能做什么?

如果您愿意删除涡轮链接来解决此问题,请按以下步骤进行操作;

应用程序中.js删除//= require turbolinks

宝石文件中,删除gem 'turbolinks', '~> 5'

在应用程序中.html.erb 从stylesheet_link_tagjavascript_include_tag中删除'data-turbolinks-track': 'reload'

我遇到了同样的问题,我发现删除涡轮链接是唯一的解决方案。

如果你想使用$(document)你可以在应用程序之前从CDN加载jquery.js在application.html.erb中。
如果你想保持涡轮链接的方式,你应该使用类似window.addEventListener 'turbolinks:load', ->

最新更新