Rails不一致地加载js

时间:2019-09-02 21:27:34

标签: javascript jquery ruby-on-rails turbolinks

一个普遍的问题:由于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">

我该怎么办?

2 个答案:

答案 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', ->