非常普遍的问题:由于涡轮链接,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_tag
和javascript_include_tag
中删除'data-turbolinks-track': 'reload'
我遇到了同样的问题,我发现删除涡轮链接是唯一的解决方案。
如果你想使用$(document)
你可以在应用程序之前从CDN加载jquery.js在application.html.erb中。
如果你想保持涡轮链接的方式,你应该使用类似window.addEventListener 'turbolinks:load', ->