我有一个名为index.html
的文件,应该执行以下行来显示地图:Controller.startup(notauth);
。我已确保逻辑符合这一要求。
不知何故,地图不会出现,我在Chrome调试器中发现对错误的JS脚本路径有一些调用。
在这里,我的index.html
中包含了几行内容:
<script type="text/javascript">
var dojoConfig = {
async: true,
packages: [{
name: 'viewer',
location: location.pathname.replace(/[^\/]+$/, '') + 'js/viewer'
},{
name: 'config',
location: location.pathname.replace(/[^\/]+$/, '') + 'js/config'
},{
name: 'gis',
location: location.pathname.replace(/[^\/]+$/, '') + 'js/gis'
}]
};
</script>
<script type="text/javascript" src="http://10.255.1.77/sonar/arcgis_js_api/library/3.15/3.15/init.js"></script>
<script type="text/javascript">
//Get app ID from url
var file = 'config/viewer', s = window.location.search, q = s.match(/config=([^&]*)/i);
//alert ('var file ORI (config/viewer) : ' + file);
//alert ('nilainya Q : ' + q);
if (q && q.length > 0) {
file = q[1];
//alert ('Q1 : ' + file);
//alert ('S : ' + s);
if(file.indexOf('/') < 0) {
configfile = 'config/' + file;
}
//alert ('CONFIG-FILE : ' + configfile);
}
if (configfile == 'config/all')
{
//alert ('config == ALL');
//alert ('configfile is ' + configfile + ' -- strpathfile : ' + strpathfile);
if (ImgStatus && checkfileimg_js(strpathfile)) {
require(['viewer/Controller', configfile + '_imagery'], function(Controller, config){
Controller.startup(config);
});
}
else
{
alert ('controller.startup(notauth) Hellow NOAUTH ');
require(['viewer/Controller', 'config/all'], function(Controller, notauth)
{
Controller.startup(notauth);
});
}
}
else //IF configfile <> ALL (env,pims,clear dll)
{
Controller.startup(auth);
}
当我在Chrome中调试它时,我得到以下结果: -结果1:https://snag.gy/g37joA.jpg -结果1:https://snag.gy/aBMren.jpg
正确的路径应为“ http://10.255.1.77/sonar/arcgis_js_api/library/3.15/3.15/dijit/TitlePane.js” 不是http://10.255.1.77/sonar/arcgis_js_api/library/3.15/dijit/TitlePane.js
那些JS来自哪里?我无法在index.html中找到它们。我在哪里以及如何找到调用这些JS脚本的行?
请帮助
答案 0 :(得分:1)
答案 1 :(得分:1)
您必须在HOSTNAME_AND_PATH_TO_JSAPI
和init.js
(在esri js api内部)中正确配置dojo.js
,
在init.js
和:
http://10.255.1.77/sonar/arcgis_js_api/library/3.15/3.15/
那些JS来自哪里?
脚本是异步加载的(请参见Modern dojo AMD)
require(['viewer/Controller'], function(controller)) ...
这将搜索查看器(取决于顶部创建的config dojo)your_app_url/js/viewer/Controller.js
并将其加载到脚本中并注册,
控制器中的每个需求也将异步加载脚本,这种现代的AMD可以防止导入未使用的模块(模块化加载)。