我正在尝试让ESRI地图与Durandal合作,并在Durandal文档DurandalEsri
中遇到此链接这似乎有效,但现在Durandal在找到我的.js文件时遇到了问题。如果我将以下dojoConfig保留,我的脚本会被找到,但是地图将不起作用。
`var dojoConfig = {
baseUrl: './',
async: true,
tlmSiblingOfDojo: true,
parseOnLoad: false,
aliases: [['text', 'dojo/text']],
packages: [
{ name: 'esri', location: '//serverapi.arcgisonline.com/jsapi/arcgis/3.5/js/esri' },
{ name: 'dojo', location: '//serverapi.arcgisonline.com/jsapi/arcgis/3.5/js/dojo/dojo' },
{ name: 'dojox', location: '//serverapi.arcgisonline.com/jsapi/arcgis/3.5/js/dojo/dojox' },
{ name: 'dijit', location: '//serverapi.arcgisonline.com/jsapi/arcgis/3.5/js/dojo/dijit' },
{ name: 'durandal', location: 'App/durandal' },
{ name: 'views', location: 'App/views' },
{ name: 'viewmodels', location: 'App/viewmodels' },
{ name: 'lib', location: 'App/lib' }
]
};`
我的应用结构如下所示:
所以在我的shell.js文件中,如果我尝试传入'lib / config',我得到一个404,因为它试图在localhost / lib / config.js而不是localhost / dashboard / app / lib中找到配置文件/config.js
如果我将'dashboard / app / lib / config'传递给shell.js,将会找到该文件,但似乎我不应该指定整个路径,因为'durandal / system'和其他任何东西在'durandal'文件夹下找到正确的。
任何想法???
答案 0 :(得分:0)
我在使用Esri加载AMD模块时遇到了类似的问题。我使用类似于你的配置解决了它,但使用了以下baseurl:
baseUrl: location.pathname.replace(/\/[^/]+$/, '') + '/path/to/app/main'
正如Jeffrey Grajkowski对我的问题的回答所述:https://stackoverflow.com/a/15390919/1014822
答案 1 :(得分:0)
因此,对于我的Durandal + Esri + Dojo场景,我不得不遗漏Durandal附带的require.js文件并使用dojo AMD加载程序。不幸的是,我不知道这可能导致的未来问题。 更多信息可以在here
找到