dojo--require和路径相关问题

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来配置。

dojo认为所有不以dojo开始的包都存放在和dojo文件夹相同的目录中,因此dojo.require(“some.module”),是dojo加载文件“/web/scripts/dojo-1.3/some/module.js”。

dojo.registerModulePath
registerModulePath方法用来指定包的加载路径,该路径是相对dojo.baseUrl的:
dojo.registerModulePath("lib", "../../lib");
// 如果dojo.js的路径是 /somepath/dojotoolkit/dojo/dojo.js
// baseURL是 "/somepath/dojotoolkit/dojo/"
// 则 "lib" 的路径是 "/somepath/lib"

注意:如果指定的路径以“/”或“http”开始,则路径和baseUrl无关,设置的路径的值不能以"\"结尾。

djConfig.modulePaths
modulePaths属性配置多个module的路径,初始化时,调用dojo.registerModulePath定义多个module path。

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

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;
      }
  });

你可能感兴趣的:(web前端,前端)