我有一个类似的问题,我需要一个到我的dojo/text
模板的相对路径。例如
/foo
/js
/stuff
SomeWidget.js
/templates
/MyTemplateForSomeWidget.html
事实证明,您应该提供“模块路径”而不是“愚蠢的 url”,因此这不起作用:
"dojo/text!../../templates/MyTemplateForSomeWidget.html"
它给了你很大的错误IrrationalPath
(没有解释)。原来你不允许使用“ ../
”,所以它吓坏了。您当然可以使用绝对路径,从 a 开始/
,但在我的情况下,不能保证整个路径,所以我通过在 my 中注册路径来解决这个问题dojoConfig
,就像这样
dojoConfig = {
// ...
packages: [
{ name: 'app', location: '/foo/js/app' },
{ name: 'templatePkg', location: '/foo/templates/' },
// ... etc
}
}
然后只需引用templatePkg
模板路径的开头,如下所示:
"dojo/text!templatePkg/MyTemplateForSomeWidget.html"
对我来说,“困难的部分”是绕过“包”必须用于 JavaScript 源的想法,并认为其他人可能有同样的误解。
希望这可以帮助。G。