在rails 4中加载javascript文件

在rails 4中加载javascript文件,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我的rails资产目录中有一个结构,如下所示 --javascripts -utils // directory helper.js session.js app.js application.js home.js 以上是我在rails中的目录结构。当我加载我的应用程序时,我发现下面的错误,我觉得JS没有正确加载 Uncaught TypeError: Cannot read property 'addMethod' of undefined additional-methods.mi

我的rails资产目录中有一个结构,如下所示

--javascripts
 -utils // directory
   helper.js
session.js
app.js
application.js
home.js
以上是我在rails中的目录结构。当我加载我的应用程序时,我发现下面的错误,我觉得
JS没有正确加载

Uncaught TypeError: Cannot read property 'addMethod' of undefined additional-methods.min.js?body=1:3
Uncaught ReferenceError: Helper is not defined login.js?body=1:22
Uncaught TypeError: Cannot read property 'validate' of undefined 
下面是我的application.js

//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require vendor
//= require_tree .
如果我们必须从特定目录加载文件,是否有任何特定的操作?如何从文档中加载
Utils
目录和我的
application.js中的其他文件:

指令是自上而下处理的,但文件的顺序不同 未指定是否包含在require_树中。你不应该依赖别人 任何一种特殊的顺序。如果你需要确保 特定的JavaScript最终会在连接的 文件,首先需要清单中的先决条件文件

因此,如果需要在
home.js
中的任何内容之前定义
Utils
中的内容,我会在
require\u树上方添加
require\u目录Utils
语句。我想这可能是你的javascript出了问题并抛出了你发布的错误

这是文档中关于
require\u目录的说明:

您还可以使用require_directory指令,该指令包含所有 JavaScript文件只在指定的目录中,没有递归

从文档中:

指令是自上而下处理的,但文件的顺序不同 未指定是否包含在require_树中。你不应该依赖别人 任何一种特殊的顺序。如果你需要确保 特定的JavaScript最终会在连接的 文件,首先需要清单中的先决条件文件

因此,如果需要在
home.js
中的任何内容之前定义
Utils
中的内容,我会在
require\u树上方添加
require\u目录Utils
语句。我想这可能是你的javascript出了问题并抛出了你发布的错误

这是文档中关于
require\u目录的说明:

您还可以使用require_directory指令,该指令包含所有 JavaScript文件只在指定的目录中,没有递归

如果我们要从服务器加载文件,有什么具体的方法吗 特定目录

方法是使用另一个目录上的指令:

#app/assets/javascripts/application.js
#= require_tree ./utils 
但是,如果您使用的是
require\u tree.
,则基本上包括您的
父目录下的所有目录(称为)


正如Nicolay所提到的,您基本上希望按照正确的顺序包含JS。虽然我不确定您为什么会在
login.js和
附加方法.min.js中出错

这意味着您的JS正在尝试调用它们,但它们没有加载。这只会导致预编译之类的错误(如果您只是在dev中运行,那么加载顺序应该不会有问题)

答案是将清单定义为在需要时包含各种文件:

#app/assets/javascripts/application.js
//= require jquery
//= require jquery_ujs
//= require_tree .
//= require vendor
//= require bootstrap
但更重要的是-如何调用函数?

如果我们要从服务器加载文件,有什么具体的方法吗 特定目录

方法是使用另一个目录上的指令:

#app/assets/javascripts/application.js
#= require_tree ./utils 
但是,如果您使用的是
require\u tree.
,则基本上包括您的
父目录下的所有目录(称为)


正如Nicolay所提到的,您基本上希望按照正确的顺序包含JS。虽然我不确定您为什么会在
login.js和
附加方法.min.js中出错

这意味着您的JS正在尝试调用它们,但它们没有加载。这只会导致预编译之类的错误(如果您只是在dev中运行,那么加载顺序应该不会有问题)

答案是将清单定义为在需要时包含各种文件:

#app/assets/javascripts/application.js
//= require jquery
//= require jquery_ujs
//= require_tree .
//= require vendor
//= require bootstrap
但更重要的是-如何调用函数?