Rails的application.js中如何引入指定目录下的全部JS文件
Rails项目资产管道批量引入指定目录JS文件的正确方案
Sprockets(Rails资产管道默认处理器)的
require指令仅支持引入单个文件,不支持通配符匹配批量加载,所以你之前使用通配符的require写法无法生效。
前置检查
如果你的pivottable是通过yarn/npm安装在node_modules目录下,需要先确认资产加载路径已配置,打开config/initializers/assets.rb,确认存在以下配置:
Rails.application.config.assets.paths << Rails.root.join('node_modules')
如果pivottable是放在vendor/assets/javascripts目录下,无需额外配置,该路径默认已加入资产加载列表。
正确引入写法
根据你的需求二选一即可:
- 仅引入
pivottable/dist一级目录下的所有JS文件,不递归加载子目录内容://= require_directory pivottable/dist - 递归引入
pivottable/dist目录下所有子目录内的全部JS文件://= require_tree pivottable/dist
注意事项
如果存在依赖顺序要求(比如核心文件pivot.js必须早于其他扩展文件加载),可以将单个核心文件的引入写在批量引入指令之前:
// 先加载核心文件 //= require pivottable/dist/pivot // 再加载同目录下其他所有JS //= require_directory pivottable/dist
内容的提问来源于stack exchange,提问作者Peabrain
相关产品推荐
相关产品推荐

