我有一个这样的目录结构:
├── index.html
├── static
│ └── js
│ ├── main.js
│ ├── jquery.js
│ └── require.js
└── subfolder
└── index.html
在我的顶级index.html
中,我正在加载require.js像这样,它可以工作:
<script data-main="static/js/main" src="static/js/require.min.js"></script>
但是,在subfolder/index.html
,我无法成功加载 require.js:
<script data-main="../static/js/main" src="../static/js/require.min.js"></script>
这会导致"脚本错误:jquery",并且对于我的main
模块的每个依赖项都相同。
require.js 的baseUrl
设置为 static/js
。由于这些页面旨在在本地使用,因此我不能使用绝对 URL。如何要求.js从子文件夹中工作?
主.js文件的内容:
require.config({
baseUrl: 'static/js',
paths: {
'jquery': 'jquery-2.0.3',
}
});
require(['jquery'], function($) { ... }
解决方案是根本不设置baseUrl
:
如果在配置中未显式设置 baseUrl,则默认值将为加载 require.js 的 HTML 页面的位置。如果使用数据主属性,则该路径将成为基 URL。
删除baseUrl
设置导致上述示例正常工作。