假设我已经从网上某个地方提取了一个fancy.js文件,我应该采取哪些措施将其包含在我的Rails 4应用程序中?
现在我有以下
在1和2之后是否还有更多步骤,或者我开始时这样做是错误的吗?
答案 0 :(得分:6)
看起来你走的是正确的道路。看看app/assets/javascripts/application.js
当您创建新应用(即rails new app_name
)时,它应该已添加
//= require_tree .
只需添加对您希望包含的其他javascript文件的引用。
示例强>
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require fancy
//= require_tree .
上找到更多信息
答案 1 :(得分:3)
使用流行的第三方资产时,更好的选择是在Rubygems上查找资产的宝石版本。在这种情况下fancybox2-rails。
gem 'fancybox2-rails', '~> 0.2.8'
使用链轮添加gem到application.js
:
//= require jquery
//= require fancybox
或者在脚本标记中:
<%= javascript_include_tag "fancybox" %>
和css:
/*
*= require_self
*= require fancybox
*= require_tree .
*/
使用Gemified软件包的优势在于它更易于维护,并且您可以避免使用第三方代码污染代码库。缺点是gem可能比它封装的实际软件早几个版本。
如果您需要添加供应商文件,您可能应该将它们添加到lib/assets
而不是app/assets
,因为它可以明确区分实际驱动您的唯一应用程序的代码和依赖项。
另一件需要记住的事情是,资产通常是在生产环境中的部署时编译的(在Heroku上尤其如此)而不是每个请求(这将非常慢)。因此,您不能在sprockets指令中使用条件。