【发布时间】:2018-09-01 04:11:14
【问题描述】:
我正在尝试在我的 rails 应用程序中加载一些 JavaScript,如下所示:
Application.html.erb(在头部)
<%= javascript_include_tag 'application' %>
Application.html.erb(在 HTML 结尾之前)
<script>
$(document).ready(function() {
notie.alert(1, "It Works", 2);
});
</script>
Application.js
//= require rails-ujs
//= require turbolinks
//= require theme/jquery
//= require theme/bootstrap
//= require theme/select2
//= require theme/notie
//= require theme/plugins
//= require theme/app
//= require_tree .
使用此设置,我收到以下错误:
TypeError: document.body is null
TypeError: notie is undefined
在我看来,错误可能是由于 turbolinks 以及 JS 是如何加载资产管道的,但对于我来说,我无法弄清楚哪里出了问题。任何帮助表示赞赏。
【问题讨论】:
-
您是否尝试过删除
//= require_tree .并将//= require turbolinks移至底部? -
是的,我试过了。没有骰子。
-
您是否尝试过创建一个新的 .js 文件,用新资产的
//= require填充它,并将<%= javascript_include_tag 'new' %>放在结束正文标记之前? stackoverflow.com/questions/9916747/… -
这样做了,将新文件添加到 assets.rb 中进行预编译并让它工作!干杯朋友
标签: javascript ruby-on-rails asset-pipeline