2013-12-17 39 views
1

我正在使用Esri的ArcGis CDN,我想要一些自定義模塊。我的目錄結構如下帶CDN的自定義模塊

Scripts 
    app 
     basemap.js 
     test.js 
Views 
    Maps 
     General.cshtml 

General.html我有這對我的道場在配置test.js

require([ 
    "dojo/ready", 
    "app/basemap" 
], function (ready, basemap) { 

    basemap.test(); 

} 

<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> 

測試使用如果我使用絕對路徑location: 'http://localhost:53862/Scripts/app'然後它工作正常。

我試過其他的東西'',但我似乎無法從Maps文件夾導航到我的app文件夾。我查看的所有示例都指定了該位置的子目錄或絕對路徑。有沒有我的方式,我可以做一些像../Scripts/app

回答

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

1

我建議你閱讀"Configuring Dojo with dojoConfig""Using Custom Modules with a CDN"

例如Google CDN。

道場的配置,看看物業的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(); 

} 
+0

baseUrl將指定所有包的基礎URL,這意味着它將嘗試在'/ Scripts'下查找dojo的東西。 – Shoe