Rails 5 - 已经加载了Rails-ujs

时间:2018-04-05 16:24:16

标签: javascript ruby-on-rails ruby

我已将标记javascript放入我的正文应用程序中。

在我的控制台中,我收到此错误:

  

Rails-ujs has already been loaded.

在开发模式下,应用程序可以运行,但它在生产中不起作用。

我已经在Heroku上部署了我的rails应用程序。

我尝试将标记javascript移动到头部,但是所有函数js都无效。

任何解决方案?

3 个答案:

答案 0 :(得分:1)

如果您使用的是webpack和单独的前端,则application.html中可能有两个javascript标记实例。

= javascript_include_tag 'application', 'data-turbolinks-eval' => false
= javascript_pack_tag 'application'

您将要删除第一个实例;同样,如果您使用pack_tag来渲染样式表,则可能会遇到两次被调用过的CSS类(在开发工具中的元素上会看到堆叠的类)。

答案 1 :(得分:0)

我解决了将我的javascript放到头部并简单地包含下面的所有功能:

$ (document).on('turbolinks: load', function () {
})

答案 2 :(得分:0)

如果您不使用webpack,请像这样使用:

    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload', 'data-turbolinks-eval': false %>
    <%= javascript_include_tag 'frontend_application', 'data-turbolinks-track': 'reload' %>
</body>

在application.js文件中

//= require rails-ujs
//= require activestorage
//= require turbolinks

在frontend_application.js文件中

//= require compress.min
//= require custom