我正在尝试将现有的应用程序转换为新的3.1资产管道布局,并且希望包含许多必须按特定顺序排列的供应商文件(underscore.js和backbone为一对)。因此,我不能只用一个= require_tree .
拉我的供应商文件,(不用重命名每个文件的前缀。)。
以下是我的app/assets/javascripts/application.js
文件中:
// =需要modernizr-1.7
// =需要jquery-1.6.1
// =需要下划线-1.1.5
// =需要backbone-0.3.3
// = require_tree。
我已经尝试了带有/带外扩展的每个组合,带/带出require_tree和带/不带相对路径,并且没有任何效果。我所有的供应商文件都在/vendor/assets/javascripts/
。
我觉得自己很愚蠢,因为这看起来像是一个明显的用例,(包括通过命令命名的特定文件对JS来说很常见,不是吗?),我必须做一些愚蠢的事情?
发布于 2018-03-26 13:57:48
您可以按特定顺序要求每个文件,然后添加:
//= require_self
代替:
//= require_tree .
发布于 2018-03-26 15:02:51
你有两种可能的结构:第一种和第二种。通过以下两个示例,您可以看到一个包/assets/externals.js
。你可以使用javascript_include_tag
这个软件包,但你也可以在你的application.js
文件中使用它。
vendor/
├── assets
│ ├── javascripts
│ │ ├── externals.js
│ │ ├── modernizr-1.7.js
│ │ └── underscore-1.1.6.js
│ └── stylesheets
└── plugins
该文件externals.js
包含:
//= require ./underscore-1.1.6.js
//= require ./modernizr-1.7.js
vendor/
├── assets
│ ├── javascripts
│ │ └── externals
│ │ ├── index.js
│ │ ├── modernizr-1.7.js
│ │ └── underscore-1.1.6.js
│ └── stylesheets
└── plugins
该文件index.js
包含:
//= require ./underscore-1.1.6.js
//= require ./modernizr-1.7.js
https://stackoverflow.com/questions/-100007784
复制相似问题