【问题标题】:Loading javascript files in rails 4在rails 4中加载javascript文件
【发布时间】:2014-07-02 03:02:26
【问题描述】:

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

--javascripts
 -utils // directory
   helper.js
session.js
app.js
application.js
home.js

以上是我在 rails 中的目录结构。当我加载我的应用程序时,我得到以下错误,我觉得是JS is not getting loaded properly

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中的其他文件

【问题讨论】:

    标签: javascript jquery ruby-on-rails


    【解决方案1】:

    来自文档:

    指令从上到下处理,但文件的顺序 包含在 require_tree 中是未指定的。你不应该依赖 其中的任何特定顺序。如果您需要确保一些 特定的 JavaScript 在连接中最终高于其他一些 文件,首先需要清单中的先决条件文件。

    因此,如果您需要在 home.js 中的任何内容之前定义来自 Utils 的内容,我会在 require_tree . 语句上方添加 require_directory utils。我想这可能是您的 javascript 出了什么问题并抛出了您发布的错误。

    这就是文档对require_directory 的评价:

    您还可以使用包含所有内容的 require_directory 指令 JavaScript 文件只在指定的目录下,不递归。

    【讨论】:

      【解决方案2】:

      如果我们必须从 具体目录?

      这样做的方法是在另一个目录上使用require_directory or require_tree . 指令:

      #app/assets/javascripts/application.js
      #= require_tree ./utils 
      

      但是,如果你使用require_tree .,这将基本上包括你parent下的所有目录(它被称为recursion


      正如Nicolay 所提到的,您基本上希望以正确的顺序包含您的JS。虽然我不确定您为什么会收到 login.jsadditional-methods.min.js 的错误

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

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

      #app/assets/javascripts/application.js
      //= require jquery
      //= require jquery_ujs
      //= require_tree .
      //= require vendor
      //= require bootstrap
      

      但更重要的是 - 函数是如何被调用的?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-18
        • 2014-05-31
        • 2015-03-10
        相关资源
        最近更新 更多