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

【导读】html

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

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

3.x的API也相似。服务器

1. 准备工做-建立自定义网站

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

如下为自定义网站的信息列表:测试

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

1.1 物理存储

以下:网站

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

<h1>Hello World</h1>

以测试网站有效性。3d

1.2 IIS的设置

以下:code

 

由于是在本机本地环境测试,故IP地址选“所有未分配”便可。此处选择http协议。

//  若是买了云主机,且为IP配置了域名,则主机名能够填上域名,IP地址能够填获得的IP地址;本机测试请忽略此条。

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

1.3 配置jsapi有关库

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

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

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

[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以下图所示:

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

--测试init.js:

成功。

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同样:

其实只须要配置网站的默认文档便可。

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

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

这是我配置的:

 

显然,这里的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文件(真累啊)

以下图:

 

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

相关文章
相关标签/搜索