在離線部署查資料的過程中,基本全部都是部署在“Default Web Site”下面,部署在這個下面的默認是 http 方式請求的。並且不能修改。
但是系統中請求的都是 https,這樣導致請求不到JS文件。
下面就介紹部署為 https 的方式。
1、下載 ArcGIS API SDK 文件
到官網上下載,要下載前必須要登錄才能看到下載列表,注冊一個也挺方便。
下載對應的版本即可。
2、部署API
把下載的文件解壓放到要部署的位置,打開 IIS 管理器。
右鍵“網站”=》添加網站,出現如下界面
“物理路徑”選擇解壓的文件夾下的API文件,如我的4.10 “arcgis_js_v410_api\arcgis_js_api\library\4.10”。
“類型”選擇 https。
點擊確定離線就部署好。
3、配置文件
這里要修改兩個文件:init.js、dojo\dojo.js,把 [HOSTNAME_AND_PATH_TO_JSAPI] 替換為你發布的站點地址,如下:
到這里部署全部完成。在瀏覽器打開部署下的文件正常即可。
4、樣式圖標不顯示
打開部署的離線站點“HTTP響應標頭”,添加以下幾項,重啟站點即可。
Access-Control-Allow-Credentials:true Access-Control-Allow-Headers:origin,x-requested-with,content-type Access-Control-Allow-Methods:POST,GET,OPTIONS Access-Control-Allow-Origin:*
5、簡單示例代碼

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> html, body, #viewDiv { padding: 0; margin: 0; height: 100%; width: 100%; } </style> <link rel="stylesheet" href="https://192.168.1.216:8083//esri/css/main.css"> <script src="https://192.168.1.216:8083/init.js"></script> <script> require([ "esri/Map", "esri/views/MapView" ], function (Map, MapView) { var map = new Map({ basemap: "streets" }); var view = new MapView({ container: "viewDiv", // Reference to the scene div created in step 5 map: map, // Reference to the map object created before the scene zoom: 4, // Sets zoom level based on level of detail (LOD) center: [15, 65] // Sets center point of view using longitude,latitude }); }); </script> </head> <body> <div id="viewDiv"></div> </body> </html>
注意:
1、由於是自己發布的在第一次打開會提升不安全的網站,繼續訪問即可;
2、在清理緩存后還會提升不安全網站;
3、題外話,天地圖的key,雖然服務端和web端都有訪問切片權限,ArcGIS API JS下只能用web端;