这不可能是重复的。
简单地说,无论我做什么,baseUrl和路径都被完全忽略,我的配置文件就是这个,看起来就是这样:
require.config({
baseUrl: CONTEXTPATH + "/javax.faces.resource/scripts/new",
paths: {
"scripts": CONTEXTPATH + "/javax.faces.resource/scripts/new"
}
})
require([
"scripts/containers/index.frontpage.js.jsf?", //it goes to mysite.com/scripts/containers/index.frontpage.js.jsf?
"scripts/reducers/index.frontpage.js.jsf?" //it goes to mysite.com/scripts/reducers/index.frontpage.js.jsf?
], function(C, R){
//some logic....
});
如果我在文件路径中执行/scripts
./scripts
或scripts
并且它将始终转到根目录并不重要,我知道扩展很奇怪但这是遗产系统,我正在运行升级,AMD甚至无法获取javascript文件,只有绝对路径有效,但有些模块无法访问CONTEXTPATH,打破它。
答案 0 :(得分:0)
问题是问号。我刚试过我的本地配置(使用 baseUrl 可以正常工作)。只要我将require(['module'])
更改为require(['module?'])
,requireJS就会忽略baseUrl。
然而,这很奇怪,因为根据documentation,只要(1)路径以斜杠(require(['/foo'])
)开头,就会忽略baseUrl,(2)有一个协议( require(['http://example.com/foo'])
)或(3)以 .js (require(['foo.js'])
)结尾。问号 应该不是问题(除非在命名模块时禁止使用)。
所以,只需删除qustion标记即可。此外,由于我不知道 CONTEXTPATH 是什么样的,你也可以尝试使用绝对URL(http://example.com/...
)(这是我的require配置的方式,我们从来没有遇到过问题)
此外,paths
规则定义例外(“使用baseUrl,除非在路径中指定了其他内容”)。