我已将标记javascript
放入我的正文应用程序中。
在我的控制台中,我收到此错误:
Rails-ujs has already been loaded.
在开发模式下,应用程序可以运行,但它在生产中不起作用。
我已经在Heroku上部署了我的rails应用程序。
我尝试将标记javascript
移动到头部,但是所有函数js都无效。
任何解决方案?
答案 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