我已经在几个目录中组织了我的javascript文件,我发现了以下奇怪的行为.给出以下树:
- + app
- + assets
- + javascripts
- + common
- + public
- + common
- + home
- - home.js
home.js看起来像这样:
- //= require jquery
- //= require jquery_ujs
- //= require jquery-ui
- //= require_directory ../../jquery_plugins
- //= require_directory ../../common
- //= require_directory ../common
- //= require_self
现在的诀窍在于jquery_plugins目录.我把这个内部的供应商/ assets / javascripts(包含在资产加载路径中,当我检查Rails.application.config.assets.paths).当我这样做我得到错误:require_tree参数必须是一个目录.当我将该目录移动到app / assets / javascripts时,一切正常.
有人对我做错了吗?还是这个bug?
解决方法
您可以将清单文件添加到您尝试投放的目录中
供应商/资产/ Java脚本/ jquery_plugins / manifest.js
供应商/资产/ Java脚本/ jquery_plugins / manifest.js
- //= require_directory .
并通过你的app / assets / javascripts / application.js来要求它
- //= require jquery_plugins/manifest
编辑(甚至更简单)
感谢@LeEnno为此
实际上,您可以将所有单个库相关的文件放在一个名为库的文件夹中,例如vendor / assets / javascripts / bootstrap,并在同一个文件夹中添加一个index.js,它将作为您的清单,Rails会自动将其取回
如果在你的
- app/assets/javascripts/application.js
你添加行
- //= require bootstrap
太简单!!!
链接到Rails Asset Pipeline Guide