一个普遍的问题:由于turbolinks,rails不一致地加载了js和jQuery。不幸的是,像$(document).on("turbolinks:load", function () { code });
这样的东西并没有解决一致性问题。
例如:如果我让诸如咖啡的脚本之类的东西像rails slick滑块一起运行,则一切运行正常,那么我从资产树中获取的自定义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">
我该怎么办?
答案 0 :(得分:0)
如果您愿意删除涡轮链接以解决此问题,请按以下步骤操作;
在 application.js 中,删除//= require turbolinks
在宝石文件中,删除gem 'turbolinks', '~> 5'
在application.html.erb中,从'data-turbolinks-track': 'reload'
和stylesheet_link_tag
两者中删除javascript_include_tag
我遇到了同样的问题,我发现删除涡轮链接是唯一的解决方案。
答案 1 :(得分:0)
如果您想使用$(document)
,则可以在application.html.erb中的application.js之前从CDN加载jquery。
如果要保持Turbolinks方式,则应使用window.addEventListener 'turbolinks:load', ->