我正在使用Esri的ArcGis CDN,我想要一些自定义模块。我的目录结构如下
Scripts
app
basemap.js
test.js
Views
Maps
General.cshtml
在General.html
中,我有这个用于我的dojo配置
<script data-dojo-config="async: 1, dojoBlankHtmlUrl: '/blank.html',
packages: [ {
name: 'app',
//Can't configure location correctly
location: location.pathname.replace(/\/[^/]+$/, '') + ''
} ]"
src="//js.arcgis.com/3.7/"></script>
测试test.js中的用法
require([
"dojo/ready",
"app/basemap"
], function (ready, basemap) {
basemap.test();
}
如果我使用绝对路径location: 'http://localhost:53862/Scripts/app'
,那么它可以正常工作。
我为''
尝试过其他一些内容,但我似乎无法从Maps
文件夹导航到我的app
文件夹。我查看的所有示例都指定了该位置的子目录或绝对路径。我有办法可以做../Scripts/app
吗?
答案 0 :(得分:1)
我建议您阅读"Configuring Dojo with dojoConfig"和"Using Custom Modules with a CDN"。
例如Google CDN。
dojo配置,查看属性baseUrl
<script data-dojo-config="async: 1,
dojoBlankHtmlUrl: '/blank.html',
baseUrl: '/Scripts',
packages:[
{ name:'dojo',location:'//ajax.googleapis.com/ajax/libs/dojo/1.9.2/dojo/'},
{ name:'app',location:location.pathname.replace(/\/[^/]+$/, '') + 'app'}]"
src="//ajax.googleapis.com/ajax/libs/dojo/1.9.2/dojo/dojo.js">
</script>
之后,测试您的自定义模块
require([
"dojo/ready",
"app/basemap"
], function (ready, basemap) {
basemap.test();
}
答案 1 :(得分:0)
我将我的dojoconfig更改为以下
<script data-dojo-config="
packages: [ {
name: 'app',
location: '//' + window.location.host + '/Scripts/app'
} ]"
src="//js.arcgis.com/3.7/"></script>
将我的app
包设置为http://localhost:53862/Scripts/app