在应用程序中包含Javascript文件的标准方法?
假设我从网上的某个地方提取了一个fancy.js文件,那么我应该采取哪些步骤将其包含在Rails 4应用程序中 现在我有以下几点在应用程序中包含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)时,它应该
第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 .
*/