如何设置ArcGIS Javascript dojoConfig相对路径的包 [英] How to set Arcgis Javascript dojoConfig relative path of packages

查看:305
本文介绍了如何设置ArcGIS Javascript dojoConfig相对路径的包的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是ArcGIS Javascript API。 API是建立在dojo工具包上的。所以我需要在API中使用dojo功能。我正在准备dojo配置文件如下。

  var pathRegex = new RegExp(/ \ / [^ \ /] + $ /); 
var locationPath = location.pathname.replace(pathRegex,'');

var dojoConfig = {
async:true,
parseOnLoad:false,
baseUrl:js /,
packages:[
{
name:application,
location:locationPath +'/ js / application'
}]
};

我创建了一个如下所示的bootstrapper.js。

  require([application / main,dojo / domReady!],function(application){
console.log(bootstrapper is running);

application.Run();
})

索引.html文件是这样的。

 <!DOCTYPE html> 
< html xmlns =http://www.w3.org/1999/xhtml>
< head>
< title> Arcgis Javacsript API样本< / title>

< link rel =stylesheethref =http://serverapi.arcgisonline.com/jsapi/arcgis/3.5/js/dojo/dijit/themes/claro/claro.css> ;
< link rel =stylesheethref =http://serverapi.arcgisonline.com/jsapi/arcgis/3.5/js/esri/css/esri.css>
< / head>

< body class =claro>
< div id =map>< / div>

< script src =// js.arcgis.com/3.6/\"></script>
< script src =js / application / djConfig.js>< / script>
< script src =js / application / bootstrapper.js>< / script>
< / body>
< / html>

我的应用程序托管在IIS上,并具有这样的地址htp:// domain / Demo / Sample1 / index.html



当我运行应用程序时,此代码给出错误如下。



NetworkError :404找不到 - http://js.arcgis.com/3.6 /js/dojo/application/main.js



如果我将bootstrapper.js文件设置如下,问题是解决。

  require([js / application / main.js,dojo / domReady!],function(application){
console.log(bootstrapper is running);

application.Run();
})

解决方案

尝试在index.h中更改脚本顺序tml文件。您的配置设置应在CDN之前加载。

 < div id =map>< / div> 

< script src =js / application / djConfig.js>< / script>
< script src =// js.arcgis.com/3.6/\"></script>
< script src =js / application / bootstrapper.js>< / script>
< / body>


I am using Arcgis Javascript API. API is built on dojo toolkit. So I need to use dojo features in API. I am preparing dojo config file as following.

var pathRegex = new RegExp("/\/[^\/]+$/");
var locationPath = location.pathname.replace(pathRegex, '');

var dojoConfig = {
    async: true,
    parseOnLoad: false,
    baseUrl:"js/",
    packages: [
    {
        name: "application",
        location: locationPath + '/js/application'
    }]    
};

I created a bootstrapper.js like following.

require(["application/main", "dojo/domReady!"], function (application) {
    console.log("bootstrapper is running");

    application.Run();
})

And index.html file is like this.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Arcgis Javacsript API Samples</title>

        <link rel="stylesheet" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.5/js/dojo/dijit/themes/claro/claro.css">
        <link rel="stylesheet" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.5/js/esri/css/esri.css">
    </head>

    <body class="claro">
        <div id="map"></div>

        <script src="//js.arcgis.com/3.6/"></script>
        <script src="js/application/djConfig.js"></script>
        <script src="js/application/bootstrapper.js"></script>
    </body>
</html>

My application is hosted on IIS and has addres like this htp://domain/Demo/Sample1/index.html

when I run application, this code giving error like following.

"NetworkError: 404 Not Found - http://js.arcgis.com/3.6/js/dojo/application/main.js"

If I set bootstrapper.js file as following, problem is solwing.

require(["js/application/main.js", "dojo/domReady!"], function (application) {
    console.log("bootstrapper is running");

    application.Run();
})

解决方案

Try to change your script order in index.html file. Your config settings should load before CDN.

    <div id="map"></div>

    <script src="js/application/djConfig.js"></script>
    <script src="//js.arcgis.com/3.6/"></script>
    <script src="js/application/bootstrapper.js"></script>
</body>

这篇关于如何设置ArcGIS Javascript dojoConfig相对路径的包的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆