想象一下,您有一个大型Web应用程序,并且您决定使用require.js来加载某些模块。为了引起一些争议,我们假设您的所有模块都直接存储在服务器的根目录中,并且所有模块都有一个额外的前缀(假设前缀包含' n /')加载模块时应忽略。
在一些嵌套页面上 - 例如[host]/path/to/page
你要定义一些入口点模块,它们依赖于某些任意模块,例如n/my/modulename
。所以你有:
定义('入口点',[' n / my / modulename'],功能(modulename){.... });
但是当你打开页面时,require.js决定根据模块名称相对于当前文档位置加载模块 - 所以它尝试获取
[host]/path/to/page/n/my/modulename
。到目前为止,你认为穷人require.js只是盲目地做它的工作而不知道你模块的疯狂位置。
那么你如何告诉需要重写路径?根据{{3}},我们可能会尝试以类似于此的方式配置它:
require.config({
baseUrl: '/'
})
这不起作用
所以让我们试试这个
require.config({
baseUrl: ''
})
没有
require.config({
baseUrl: '/',
paths: {
n: ''
}
})
还是错的
require.config({
baseUrl: '/',
paths: {
n: '/'
}
})
几乎就在那里。现在你意识到需要尝试从这条路径加载你的模块:http://my/modulename
并且你开始想知道图书馆吸烟的作者是什么。
答案 0 :(得分:0)
经过一番挣扎之后,我想我找到了唯一适合我用例的解决方案。您必须使用以下命令配置require:
require.config({
baseUrl: '/',
paths: {
n: 'FOO/../'
}
})
现在它最终从网址n/my/modulename
抓取http://[host]/my/modulename
。