dojo 一 require 路徑問題

dojo.baseUrl
 baseUrl用來存儲dojo.js存放 的跟目錄,例如dojo.js的路徑是「/web/scripts/dojo-1.3/dojo/dojo.js」則baseUrl爲「/web /scripts/dojo-1.3/dojo/」,dojo.baseUrl也能夠經過djConfig.baseUrl來配置。html

 dojo認爲全部不以dojo開始的包都存放在和dojo文件夾相同的目錄中,所以dojo.require(「some.module」),是dojo加載文件「/web/scripts/dojo-1.3/some/module.js」。web

dojo.registerModulePath
 registerModulePath方法用來指定包的加載路徑,該路徑是相對dojo.baseUrl的:
 dojo.registerModulePath("lib", "../../lib");
 // 若是dojo.js的路徑是 /somepath/dojotoolkit/dojo/dojo.js
 // baseURL是 "/somepath/dojotoolkit/dojo/"
 // 則 "lib" 的路徑是 "/somepath/lib"ui

 注意:若是指定的路徑以「/」或「http」開始,則路徑和baseUrl無關,設置的路徑的值不能以"\"結尾。url

djConfig.modulePaths
 modulePaths屬性配置多個module的路徑,初始化時,調用dojo.registerModulePath定義多個module path。orm

 var djConfig = {
     modulePaths : {'foo1': '../../bar1','foo2': '../../bar2'}
 }htm

dojo.moduleUrl
 moduleUrl方法返回某個url相對於指定module的path的絕對路徑(比較囉嗦,看看例子)。
   // points to $dojoroot/dijit/form/tests/TestFile.html
   var url = dojo.moduleUrl("dijit.form", "tests/TestFile.html");
   dojo.xhrGet({
       url: url,
       load: function(html){
            dojo.byId("foo").innerHTML = html;
       }
   });ip

相關文章
相關標籤/搜索