ArcGIS API for JavaScript 4.x 本地部署之IIS法

时间:2022-08-27 13:07:08

【导读】

关于如何在默认网站(Default Web Site,物理地址C:\inetpub\wwwroot\)启动,已有很多博客详尽地写好了。

本篇在自建网站(本机)中配置http而非https的jsAPI,jsAPI版本为4.10。

3.x的API也类似。

1. 准备工作-创建自定义网站

// 如何打开IIS、如何创建网站请移步IIS教程,比较简单,博客也很多,不再赘述。

以下为自定义网站的信息列表:

  • 物理地址:D:\jsapi_lib\(预先在此文件夹下放置一个index.html文档以测试能否本地访问,熟练IIS的同志不放也无所谓)
  • 端口:1569(这个自己随便填,只要没被占用即可,关于端口的知识也有很多博客,不再赘述)
  • 网站名称:jsapi_lib(这个可以随便,尽量不要用中文,也可以和物理地址不同)

1.1 物理存储

如下:

ArcGIS API for JavaScript 4.x 本地部署之IIS法

其中,html文件仅有一个h1标签:

<h1>Hello World</h1>

以测试网站有效性。

1.2 IIS的设置

如下:

ArcGIS API for JavaScript 4.x 本地部署之IIS法

因为是在本机本地环境测试,故IP地址选“全部未分配”即可。此处选择http协议。

//  如果买了云主机,且为IP配置了域名,则主机名可以填上域名,IP地址可以填得到的IP地址;本机测试请忽略此条。

创建站点完成并启动后是这样的:

ArcGIS API for JavaScript 4.x 本地部署之IIS法

1.3 配置jsapi有关库

将整个官网下载来的api压缩包内的第一个文件夹解压到D:\jsapi_lib\下:

ArcGIS API for JavaScript 4.x 本地部署之IIS法

(图中箭头表示拖拽解压这一动作)

然后,寻找此解压文件夹下的init.js和dojo.js,修改其中一段[HOSTNAME_AND_PATH_TO_JSAPI]字符串

ArcGIS API for JavaScript 4.x 本地部署之IIS法

[Note]

我们注意到,这里的baseUrl写的是

  • https://[HOSTNAME_AND_PATH_TO_JSAPI]dojo

这就代表,你要告诉整个api,它本身在当前web服务器的哪个URL下能访问,也就是api中dojo文件夹(在dojo中,又叫dojo模块)的网络地址(URL)。

所以这里的baseUrl即dojo这个文件夹(通俗说法)的URL,至于是什么,请接着往下看。

其中二者的物理地址(也就是对于我这台电脑的磁盘位置来说)

  • init.js:  D:\jsapi_lib\arcgis_js_v410_api\arcgis_js_api\library\4.10\init.js
  • dojo.js:  D:\jsapi_lib\arcgis_js_v410_api\arcgis_js_api\library\4.10\dojo\dojo.js

所以在超文本传输协议(http)下的网络地址

  • init.js:https://localhost:1569/arcgis_js_v410_api/arcgis_js_api/library/4.10/init.js
  • dojo.js:https://localhost:1569/arcgis_js_v410_api/arcgis_js_api/library/4.10/dojo/dojo.js

因为本机未开启https,所以init.js和dojo.js真正能被用的网络地址为:

  • init.js:http://localhost:1569/arcgis_js_v410_api/arcgis_js_api/library/4.10/init.js
  • dojo.js:http://localhost:1569/arcgis_js_v410_api/arcgis_js_api/library/4.10/dojo/dojo.js

不难得出,实际上,http://localhost:1569即等价于 D:\jsapi_lib

为什么http://localhost:1569打开后就是index.html这个测试页呢?

是因为IIS配置了默认文档,打开此URL会安默认文档列表的顺序打开对应物理地址下的某一个文档,这在第二节会说。

所以[HOSTNAME_AND_PATH_TO_JSAPI]即等价于

  • [HOSTNAME_AND_PATH_TO_JSAPI] ≡ localhost:1569/jsapi_lib/arcgis_js_v410_api/arcgis_js_api/library/4.10/

所以,dojo文件夹的网络路径即:

  • http://localhost:1569/arcgis_js_v410_api/arcgis_js_api/library/4.10/dojo/

修改后的init.js和dojo.js如下图所示:

ArcGIS API for JavaScript 4.x 本地部署之IIS法

ArcGIS API for JavaScript 4.x 本地部署之IIS法

然后重启一下网站,在地址栏输入init.js和dojo.js的网络地址即可测试访问api是否加载成功。

--测试init.js:

ArcGIS API for JavaScript 4.x 本地部署之IIS法

成功。

2. IIS网站默认文件

上节提到,在不指定某个文件的具体URL的情况下,打开http://localhost:1569能默认打开其对应物理地址下的index.html文件,那么

->如果打开http://localhost:1569要访问的是dojo.js文件,这个需求如何解决?

就好比,访问https://js.arcgis.com/4.10/,实际访问的是https://js.arcgis.com/4.10/dojo/dojo.js一样:

ArcGIS API for JavaScript 4.x 本地部署之IIS法

其实只需要配置网站的默认文档即可。

IIS的网站有一个功能叫 默认文档,在功能视图下可以找到:

ArcGIS API for JavaScript 4.x 本地部署之IIS法

然后,点进去配置默认文档列表,越靠前的文件越被优先访问,如果列表里的文档都没有,就会出现403或者404界面~

这是我配置的:

ArcGIS API for JavaScript 4.x 本地部署之IIS法

显然,这里的dojo.js文件的路径是相对路径,相对于http://localhost:1569。

注意到index.html位于第五位,而dojo.js位于第一位,所以当然先访问dojo.js

所以http://localhost:1569被访问时,会自动寻找其物理地址下的arcgis_js_v410_api文件夹下的arcgis_js_api文件夹下的library文件夹下的4.10文件夹下的dojo文件夹下的dojo.js文件(真累啊)

如下图:

ArcGIS API for JavaScript 4.x 本地部署之IIS法

=====本文测试环境为Windows 10,Chrome 69,api版本为4.10=====

ArcGIS API for JavaScript 4.x 本地部署之IIS法的更多相关文章

  1. ArcGIS API for JavaScript 4&period;x 本地部署之Nginx法

    上篇ArcGIS API for JavaScript 4.x 离线配置之IIS法提到,如何用IIS配置ArcGIS jsAPI: 本篇则使用http下的Nginx配置,其原理基本一致.https的部 ...

  2. ArcGIS API for JavaScript 4&period;x 本地部署之Apache&lpar;含Apache官方下载方法&rpar;

    IIS.Nginx都说了,老牌的Apache和Tomcat也得说一说(如果喜欢用XAMPP另算) 本篇先说Apache. 安装Apache 这个...说实话,比Nginx难找,Apache最近的版本都 ...

  3. ArcGIS API for JavaScript 4&period;x 本地部署之跨域问题解决法&colon;CORS

    众所周知,在离线部署ArcGIS API for JavaScript时,有时候会产生微件上的字体.符号变成方框的问题.这是遇到了跨域,只需要对所在服务器进行配置即可. 本篇使用的环境是:API配置在 ...

  4. ArcGis API for JavaScript学习——离线部署API

    ArcGis API for JavaScript开发笔记——离线部署API 以3.18版API为例: 在加载图图前引用GIS服务是必须的.有两种方法,一是在线引用,而是离线部署引用. 在线引用: & ...

  5. arcgis api for javascript本地部署加载地图

    最近开始学习arcgis api for javascript,发现一头雾水,决定记录下自己的学习过程. 一.下载arcgis api for js 4.2的library和jdk,具体安装包可以去官 ...

  6. Arcgis api for javascript学习笔记&lpar;4&period;5版本&rpar; - 本地部署及代理配置

    在开发过程中,由于api的文件比较多,没必要每个项目都将api加入到解决方案中.况且在VS中如果将api加入解决方案,在编写css或js代码时,由于智能提示需要扫描脚本等文件,会导致VS很卡.所以个人 ...

  7. 【1】ArcGIS API for JavaScript 4&period;5&sol;4&period;6 本地部署

    惭愧,和我的学弟比起来,我所开始接触前端开发,ArcGIS API for JavaScript的时间和深度远远不及于他. 一年之尾,亦是一年之始,我也将正式开始我的博客生涯.本人在校学习并且做项目, ...

  8. ArcGIS api for javascript 离线部署

    一.说明: 1.本篇文章以及之后的相关的文章所使用的ArcGIS API for javascript 的版本是3.3.初学者为了学习简单,可以引用在线的 Javascript.但是如果只能连接内网, ...

  9. 下载并部署 ArcGIS API for JavaScript 4&period;10

    学习ArcGIS API for JavaScript 4.10 的第一步就是下载并部署该文件. 有的读者由于之间没接触过,不知道怎么下载和部署文件.这些读者要求作者详细的写一篇关于下载和部署的文章( ...

随机推荐

  1. kali4&period;0 安装32位库

    一.前情提要: OS:Kali4.0 64bit 二.安装32位库: 错误方法:sudo apt-get install lib6-i386 正确方法如下: 1.先以root用户身份登陆: su ro ...

  2. Add Digits

    Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. ...

  3. 在HTTP响应标题中隐藏ASP&period;NET MVC的版本

    在默认情况下,ASP.NET MVC网站会在HTTP响应标题(Response Header)中动态添加目前使用的ASP.NET MVC版本编号.如果使用Fiddler Web Debugger工具查 ...

  4. 使用VS调试64位应用程序

    VS2012开始,就自带IIS Express,相比先前VS的Web调试器的弱智,和IIS的繁琐,Express简直是最佳方式啦. 本机环境是64位Win7 + 64位Oracle Client,调试 ...

  5. 浅谈HTML5拖放

    现在,新增的HTML5元素很多,也给开发者带来了很多便利,比如说:结构标记header .nav.arctile.section.footer 表单元素:url.date.emaile.search. ...

  6. 扩展欧几里德算法解二元一次方程之B - 青蛙的约会

    Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事 ...

  7. 开源Math&period;NET基础数学类库使用&lpar;13&rpar;C&num;实现其他随机数生成器

    原文:[原创]开源Math.NET基础数学类库使用(13)C#实现其他随机数生成器                本博客所有文章分类的总目录:http://www.cnblogs.com/asxiny ...

  8. idea 右键无java class选项

    项目中新建module之后,要在该目录下新增java Class文件,右键——>New发现无Java Class选项. File –Project Structure或者ctrl+alt+shi ...

  9. CF1155F Delivery Oligopoly

    题意:给定简单无向图,求一个最小的边集使得这些点是边双,输出方案.n <= 14 解:考虑一个边双肯定是一条一条的链拼起来的.于是每次枚举一条链加上去就行了. 设fs表示点集s形成边双的最小边数 ...

  10. WCF 学习总结5 -- 消息拦截实现用户名验证(转)

    WCF建立在基于消息的通信这一概念基础上.通过方法调用(Method Call)形式体现的服务访问需要转化成具体的消息,并通过相应的编码(Encoding)才能通过传输通道发送到服务端:服务操作执行的 ...