Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在应用程序中包含Javascript文件的标准方法?_Javascript_Ruby On Rails 4_Asset Pipeline - Fatal编程技术网

在应用程序中包含Javascript文件的标准方法?

在应用程序中包含Javascript文件的标准方法?,javascript,ruby-on-rails-4,asset-pipeline,Javascript,Ruby On Rails 4,Asset Pipeline,假设我从网上的某个地方提取了一个fancy.js文件,那么我应该采取哪些步骤将其包含在Rails 4应用程序中 现在我有以下几点 将fancy.js移到assets/javascripts文件夹 向application.js资产管道添加//=require 第1步和第2步之后还有其他步骤吗?还是我一开始就做错了?看起来你走的路是对的。查看一下app/assets/javascripts/application.js 当您创建一个新应用程序(即,railsnewapp\u name)时,它应该

假设我从网上的某个地方提取了一个fancy.js文件,那么我应该采取哪些步骤将其包含在Rails 4应用程序中

现在我有以下几点

  • 将fancy.js移到assets/javascripts文件夹
  • 向application.js资产管道添加//=require

  • 第1步和第2步之后还有其他步骤吗?还是我一开始就做错了?

    看起来你走的路是对的。查看一下
    app/assets/javascripts/application.js

    当您创建一个新应用程序(即,
    railsnewapp\u name
    )时,它应该已经添加了

    //= require_tree .
    
    只需添加对希望包含的其他javascript文件的引用

    示例

    //= require jquery
    //= require jquery-ui
    //= require jquery_ujs
    //= require fancy
    //= require_tree .
    

    您可以在

    上找到更多信息使用流行的第三方资产时,一个更好的选择是查看资产的配对版本。在这种情况下

    使用链轮将gem添加到
    应用程序.js

    //= require jquery
    //= require fancybox
    
    或在脚本标记中:

    <%= javascript_include_tag "fancybox" %>
    
    使用Gemified软件包的优点是易于维护,并且避免了第三方代码污染代码库。缺点是gem可能比它封装的实际软件旧几个版本

    如果您需要添加供应商文件,您可能应该将其添加到
    lib/assets
    而不是
    app/assets
    ,因为它在实际驱动您的独特应用程序的代码和依赖项之间明确划分


    另一件需要记住的事情是,资产通常在生产环境中的部署时编译(在Heroku上尤其如此),而不是按请求编译(这将非常缓慢)。因此,您不能在链轮指令中使用条件。

    谢谢您的回复。有什么特殊的语法约定我应该知道吗?如果文件名是fancy.min.js而不是fancy.js呢?语法简单吗require fancy.min?您必须这样添加文件:
    /=require fancy.min.js
    我明白了,谢谢!我问这个问题的原因是因为我打算在我的rails应用程序中使用jquery.backstretch.min.js文件,所以我必须将/=require jquery.backstretch.min.js添加到我的application.js中,对吗?谢谢!如果我只想在sessions/new.html.erb中使用jquery.backstretch.min.js,那么您知道除了声明js语法之外,是否还需要执行其他步骤吗?只需将此添加到您的页面:
    <%= javascript_include_tag "fancybox" %>
    
    /*
     *= require_self
     *= require fancybox
     *= require_tree .
     */