Javascript 无法加载Arcgis api模块
我正在编写使用ArcGIS API和Dojo类开发交互式地图的代码 它工作正常,直到我定义了一些模块,如“esri/工具栏/绘图”或其他一些模块。这些参数给出了一个错误:http://localhost/esri/toolbars/draw.js 404(未找到) 我的问题是,如果我正在使用许多其他模块,如“dojo/_base/declare”、“dojo/_base/lang”、“dojo/on”、“dojo/Deferred”、“esri/map”和许多其他模块,为什么程序不能加载“esri/toolbars/draw”?有趣的是,它在localhost中搜索它,因为我没有在本地使用ArcGIS API,所以在localhost中找不到它 我想知道是否有人能帮我做这件事。下面是我的代码示例:Javascript 无法加载Arcgis api模块,javascript,dojo,arcgis,esri,Javascript,Dojo,Arcgis,Esri,我正在编写使用ArcGIS API和Dojo类开发交互式地图的代码 它工作正常,直到我定义了一些模块,如“esri/工具栏/绘图”或其他一些模块。这些参数给出了一个错误:http://localhost/esri/toolbars/draw.js 404(未找到) 我的问题是,如果我正在使用许多其他模块,如“dojo/_base/declare”、“dojo/_base/lang”、“dojo/on”、“dojo/Deferred”、“esri/map”和许多其他模块,为什么程序不能加载“esr
require({
async: true,
parseOnLoad: true,
baseUrl: "/myApp/",
aliases: [
['text', 'dojo/text']
],
packages: [{
name: 'controllers',
location: 'js/controllers'
}, {
name: 'services',
location: 'js/services'
}, {
name: 'utils',
location: 'js/utils'
}, {
name: 'widgets',
location: 'js/widgets'
}, {
name: 'app',
location: 'js',
main:'main'
}]
}, ['app']);
___________________________________________ widgets/edit/drawTools.js
define([
'dojo/_base/declare',
'dojo/_base/lang',
'dojo/on',
'dijit/_WidgetBase',
'dijit/_TemplatedMixin',
'dojo/dom-class',
'text!widgets/edit/drawTools.html',
'esri/graphic',
"esri/toolbars/draw",
"esri/symbols/SimpleMarkerSymbol",
"esri/symbols/SimpleLineSymbol",
"esri/symbols/PictureFillSymbol",
"esri/symbols/CartographicLineSymbol",
"esri/Color"
], function(
declare, lang, on, _WidgetBase, _TemplatedMixin, domClass, template, graphic, Draw, SimpleMarkerSymbol, SimpleLineSymbol,
PictureFillSymbol, CartographicLineSymbol, Color
) {
return declare([_WidgetBase, _TemplatedMixin], {
templateString: template,
map:null,
options:{},
constructor: function(options) {
this.options = options;
this.map = this.options.map;
},
postCreate: function() {
tb = new Draw(this.map);
tb.on("draw-end", '_addGraphic');
}
function _addGraphic(evt) {
}
})
})
dojo的运行时配置不正确。请参阅文档 请注意,并非所有配置选项都可以在运行时设置。在里面 特定的、异步的、tlmSiblingOfDojo的和预先存在的has测试无法执行 装载机装载后,必须立即更换。此外,大多数配置 数据被浅层复制,这意味着您无法使用此 例如,向自定义配置添加更多密钥的机制 对象该对象将被覆盖 尝试使用添加dojoConfig的默认方式。此外,必须在添加esri api url之前添加dojoConfig
<script>
dojoConfig= {
parseOnLoad: true,
async: true
package: [{
"name": "agsjs",
"location": location.pathname.replace(/\/[^/]+$/, "")+'/agsjs'
}]
};
</script>
dojoConfig={
parseOnLoad:true,
异步:true
包装:[{
“名称”:“agsjs”,
“位置”:location.pathname.replace(/\/[^/]+$/,“”)+'/agsjs'
}]
};
Dojo api是esri api的一部分,因此不需要为Dojo添加显式url。很高兴我能提供帮助,请将问题标记为已回答。