Jquery 当应用程序/资产中可以';在lib中找不到

Jquery 当应用程序/资产中可以';在lib中找不到,jquery,ruby-on-rails,plugins,Jquery,Ruby On Rails,Plugins,我在lib文件夹中下载了一个插件()的javascript文件。具体来说,在app/lib/assets/javascripts/datatables/datatables.js中(这是文件jquery.datatables.min.js,我重命名了它,因为我认为它可能有问题,因为我试图要求整个位jquery/datatables.min) 我的app/assets/javascripts/application.js文件中有以下内容: //= require jquery //= requir

我在lib文件夹中下载了一个插件()的javascript文件。具体来说,在app/lib/assets/javascripts/datatables/datatables.js中(这是文件jquery.datatables.min.js,我重命名了它,因为我认为它可能有问题,因为我试图要求整个位jquery/datatables.min)

我的app/assets/javascripts/application.js文件中有以下内容:

//= require jquery
//= require jquery_ujs
//= require jquery_nested_form
//= require lib/assets/javascripts/datatables
//= require_tree .
我也试过了

//= require datatables
而不是lib/assets/javascripts/datatables

我收到一个错误,链轮无法在c:/Sites/my app name/app/assets/javascripts/application.js中找到文件datatables 它似乎没有在lib/assets中查找。当我把插件放在/app/assets/javascripts目录下尝试它时,它就工作了,但我知道这不是它真正应该去的地方。我还在vendor目录中进行了尝试,但没有成功,并在服务器上通知我,对于Rails4.0,它需要位于lib目录中

我研究并尝试的修复失败:

  • 重新启动服务器(作为第一次尝试修复它,以及每次尝试修复之后)

  • 包括

    config.autoload_paths+=Dir[“#{config.root}/lib/**/”] 在/app/config/application.rb中

  • 将文件从lib/assets/javascripts/datatables.js移动到lib/assets/javascripts/datatables/datatables.js

  • 在lib/assests/javascripts/datatables/中创建index.js文件,并执行以下操作:

    //=需要数据表 //=需要一棵树

  • 在app/javascripts/application.js中,只需要文件名或路径。 我试过了

    //=需要数据表

    //=需要lib/assets/javascripts/datatables

    //=require/lib/assets/javascripts/datatables/datatables

  • 当我输入/lib/assets/javascripts/datatables/datatables时,我没有收到错误消息,我的页面被加载了。然而,插件不起作用,该网站看起来就像没有插件一样。除了将.js插件文件放在app/assets/javascripts/dir中之外,这是唯一一个改变错误消息的地方,否则就是相同的错误消息

    有没有一个我没有想到我应该尝试的解决方案?lib是合适的地方吗

    谢谢你的帮助

    //= require datatables/datatables
    
    这就是在
    app/assets/javascripts/application.js文件中加载
    lib/assets/javascripts/datatables/datatables.js文件所需的全部内容

    我喜欢做的是维护一个
    lib/assets/javascripts/lib.js
    文件和一个
    vendor/assets/javascripts/vendor.js
    文件

    在我的
    app/assets/javascripts/application.js文件中

    //= require vendor
    //= require lib
    
    datatables/
    目录实际上属于
    vendor/assets/javascripts/
    ,而不属于
    lib/
    目录

    • lib/assets
      用于您自己的库的代码,这些代码实际上不适合于应用程序的范围或跨应用程序共享的库
    • vendor/assets
      用于外部实体拥有的资产,例如JavaScript插件和CSS框架的代码
    移动此目录后,可以在
    vendor/assets/javascripts/vendor.js
    中添加

    //= require datatables/datatables
    

    最后,尽管你似乎已经为自己解决了一个令人钦佩的问题,但似乎你还没有读过资产管道上的<>强> /强>如果你还没有做的话,你应该考虑做的事情。

    这就是在
    app/assets/javascripts/application.js文件中加载
    lib/assets/javascripts/datatables/datatables.js文件所需的全部内容

    我喜欢做的是维护一个
    lib/assets/javascripts/lib.js
    文件和一个
    vendor/assets/javascripts/vendor.js
    文件

    在我的
    app/assets/javascripts/application.js文件中

    //= require vendor
    //= require lib
    
    datatables/
    目录实际上属于
    vendor/assets/javascripts/
    ,而不属于
    lib/
    目录

    • lib/assets
      用于您自己的库的代码,这些代码实际上不适合于应用程序的范围或跨应用程序共享的库
    • vendor/assets
      用于外部实体拥有的资产,例如JavaScript插件和CSS框架的代码
    移动此目录后,可以在
    vendor/assets/javascripts/vendor.js
    中添加

    //= require datatables/datatables
    


    P>最后,虽然你似乎已经做出了令人钦佩的努力来解决你自己的问题,但似乎你还没有读过资产管道上的<强> <强> -如果你还没有考虑的话,你应该考虑做的事情。

    谢谢。这是有效的。我阅读了资产管道上的部分Rails指南,但是自从我开始。当他们开始谈论CSS时,我停止了讨论。我会回去阅读整个内容。我将它们放在库中,因为我收到一个警告,当我们更新到rails 4时,将不再支持供应商目录,并将它们放在lib目录中。我现在已将它们移到供应商。再次感谢。您可以n‘感谢’我投票并接受我的答案。至于
    供应商/
    目录“不再受支持”,我想你读到的是
    供应商/插件/
    支持,而不是
    供应商/资产/
    。再次看到。我接受了你的答案。我还没有足够的声誉去投票。我在服务器上读到过关于它的信息,当时我试图去投票在vendor/plugins/中打勾。我想我需要弄清楚如何更好地导航Rails Guide。谢谢你的帮助。我在这方面很新,这是我的第一个应用程序(不过我继承了它的代码,目前是唯一的开发人员)。谢谢。