我有以下简单的结构:
索引.html
...
<script src="static/js/lib/require.js" data-main="static/js/main"></script>
</head>
...
静态/js/main.js
requirejs.config({
baseUrl: 'static/js',
paths: {
m: 'modules'
}
});
require(['m/test01'], function(test01) {
console.log(test01.print());
});
静态/js/modules/test01.js
define(['m/test02'], function(test02){
return {
print: function() {
return 'test01 and '+ test02;
}
};
});
静态/js/modules/test02.js
define(function() {
return 'test02';
});
现在,当我直接打开 index.html (file:///index.html) 时,一切顺利。脚本加载工作,“test01 和 test02”记录在控制台中。
但是,如果我通过 xampp (localhost/requiretest/index.html) 打开 test01.js 的加载顺利,但对于 test02.js,我在控制台 (Firefox) 中收到此错误:
NetworkError: 404 Not Found - localhost/01-test-grunt/static/js/test02.js
(removed "http://" before localhost for stackoverflow)
如您所见,URL 中缺少“modules/”部分。有人知道会发生什么吗?
注意:当我将 baseUrl 更改为“static/js/modules”时,它确实有效,但由于我的 grunt 构建过程,我不能这样做。无论如何,我假设也不会加载其他路径,所以这是一个错误还是我做错了什么?