1

我正在尝试让 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' 文件夹。

有任何想法吗???

4

2 回答 2

0

我在使用 Esri 加载 AMD 模块时遇到了类似的问题。我使用与您类似的配置解决了它,但使用了以下 baseurl:

baseUrl: location.pathname.replace(/\/[^/]+$/, '') + '/path/to/app/main'

如 Jeffrey Grajkowski 对我的问题的回答所述:https ://stackoverflow.com/a/15390919/1014822

于 2013-06-04T20:49:30.260 回答
0

因此,对于我的 Durandal + Esri + Dojo 方案,我不得不省略 Durandal 附带的 require.js 文件并使用 dojo AMD 加载程序。不幸的是,我不知道这可能会导致未来的问题。更多信息可以在这里找到

于 2013-06-05T23:59:25.463 回答