Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Durandal dojoConfig和ESRI地图_Dojo_Durandal_Esri - Fatal编程技术网

使用Durandal dojoConfig和ESRI地图

使用Durandal dojoConfig和ESRI地图,dojo,durandal,esri,Dojo,Durandal,Esri,我试图让ESRI地图与Durandal一起工作,并在Durandal文档中发现了此链接 这似乎可行,但现在Durandal在查找我的一些.js文件时遇到了问题。如果我不使用下面的dojoConfig,我的脚本会被找到,但是映射将无法工作 `var dojoConfig = { baseUrl: './', async: true, tlmSiblingOfDojo: true, parseOnLoad: false, aliases: [['text',

我试图让ESRI地图与Durandal一起工作,并在Durandal文档中发现了此链接

这似乎可行,但现在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”文件夹下的任何其他内容都可以正确找到


有什么想法吗?

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

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


正如Jeffrey Grajkowski在这里回答我的问题时所描述的那样:

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

我用你的方法让它工作起来,但出于某种原因,我不得不添加一个额外的“/App”对于路径…+“/App/App”,我还必须使用问题中链接中修改过的dojo.js。我不确定为什么它需要添加a
App
,但很高兴你让它工作。我在尝试将更改集成到实际应用程序时遇到了更多问题。在我的应用程序中,我们显式地加载require.js,如下所示:当我这样做时,它会在本地主机上搜索esri文件并获得404。我猜当我没有包括durandals require.js时,它最终会使用dojo AMD