本地部署和配置ArcGIS API for JavaScript,实现server中JavaScript Viewer离线查看服务

1
分享 2017-05-17
背景
在ArcGIS Server中,当我们发布完一个服务,例如WMS或者WMTS,可以点击服务的缩略图,通过ArcGIS Server内置的JavaScript Viewer查看服务。



通过检查元素,我们可以看到其调用的JS文件和样式文件都是使用在线的,所以在断网或者离线的局域网环境中,就查看不了服务。因此需要在离线环境下部署ArcGIS API for JavaScript。

这里以10.5版本为例,具体的过程如下:

一、准备工作:
(1)准备API(arcgis_js_v318_api.zip)和SDK包(arcgis_js_v318_sdk.zip)

1> 在线下载地址为:https://developers.arcgis.com/downloads/

2> 找到ArcGIS API for JavaScript,选择对应的3.18版本,然后分别点击下面的API和Documentation,即可下载API和SDK包







(2)IIS服务器开启

参考这个链接:https://zhihu.geoscene.cn/question/12891

二、解压API和SDK包
将API和SDK的文件夹分别解压至C:\inetpub\wwwroot文件夹下,注意解压的路径





三、测试文件可访问
打开浏览器,输入http://localhost/arcgis_js_api/,如果出现下面文件,则成功,如果不行,可以按照网页提示操作,这个一般问题不大。



四、设置离线的本地路径
在浏览器总打开ArcGIS Server管理页面,形如https://arc.arcgiser.com:6443/arcgis/admin格式,就是在arcgis后添加 /admin,

然后按照这个选项路径Home > system > handlers > rest >servicesdirectory > edit,进入如下页面,这里我们修改图中框住的四个参数。



这四个参数为第三步测试文件夹中的url文件路径,为如下形式,也就是init.js、SDK文件夹、tundra.css、esri.css的路径,其中将arc.arcgiser.com的换成你本机的域名或者本机的IP均可,设置好后,保存即可。





五、修改文件中的路径
首先分别找到这四个文件,文件路径如下:

C:\inetpub\wwwroot\arcgis_js_api\library\3.18\3.18 \init.js

C:\inetpub\wwwroot\arcgis_js_api\library\3.18\3.18 \dojo\dojo.js

C:\inetpub\wwwroot\arcgis_js_api\library\3.18\3.18compact\init.js

C:\inetpub\wwwroot\arcgis_js_api\library\3.18\3.18compact\\dojo\dojo.js

搜索文件中[HOSTNAME_AND_PATH_TO_JSAPI],将其替换为arc.arcgiser.com/arcgis_js_api/library/3.18/3.18,形式如图所示,同样将arc.arcgiser.com在替换为你本机的域名或者本机的IP均可



六、然后在离线的环境中,你的服务就可以正确加载查看了。
集群中其他server机器会同步该设置,不用修改。

3 个评论

没有效果
关键是确保第四步的路径都能被访问到以及第五步的路径正确替换
操作过程中有几处当时产生困惑的地方~
① 解压缩包:一开始以为是将两个压缩包直接解压后,将文件夹拷贝到 webroot 文件夹下,后来发现压缩包中只需要 arcgis_js_api 这个文件夹,不是压缩包所有内容都要解压的。
分别将两个压缩包中的 arcgis_js_api 解压,合并到一个文件夹里 然后放到webroot文件夹下。
②第五步,替换[HOSTNAME_AND_PATH_TO_JSAPI] ,注意这里包含前后的 “[]” 括号也是要替换掉的,另外替换后的链接不包含 “http://” ,即 需要用 “arc.arcgiser.com/arcgis_js_api/library/3.18/3.18” 替换掉 “[HOSTNAME_AND_PATH_TO_JSAPI]”。注:需要“将arc.arcgiser.com的换成你本机的域名或者本机的IP”,见下文。
③这点自己没困惑,有的同学可能有困惑:文章中包含“arc.arcgiser.com”的所有链接,“arc.arcgiser.com”都是计算机名,是用来示例的,需要“将arc.arcgiser.com的换成你本机的域名或者本机的IP”

要回复文章请先登录注册