Пространство имен => путь к модулю получается заменой точек (.), короче - нужно заменить косую черту на точку. Ваше требование должно быть
dojo.require('dojo.dom'); // blocking call? djConfig.async must be false
Поскольку ошибка связана с указанным путем dojo.require, это означает, что ваш файл dojo.js найден и загружен (dojo.require не является неопределенным), а baseUrl не относится к модулям dojo.
Дело в том, что вы используете устаревший загрузчик для загрузки модуля AMD, в версии 1.7+ оператор require выглядит по-другому.
// AMD loader form is
function callbackFunctionOnComplete(dojoDom) { }
require([ "dojo/dom" ], callbackFunctionOnComplete); // non-blocking
Итак, как работает dojo.require
, предположим, что параметр, который мы передаем в виде строки, называется 'module;
dojo.require = function(module) {
var parts = module.split('.');
1 - получить пространство имен верхнего уровня (глобальное)
var packageName = parts.shift(); // first part is the package name
2 - получить имя файла (минус .js)
var id = parts.pop(); // the last bit
3 - перевести все между ними в путь (относительно packagelocation)
var mid = parts.join("/");
4 - местоположение пакета поиска (с верхнего уровня)
var fullpath = // in pseudo
foreach dojoconfig.packages
iff obj.name == packageName
set to obj.location
5 добавить остальное и начать загрузку модуля
fullpath += mid + id + '.js'
transport.get(..... fullpath .....)
person
mschr
schedule
28.07.2012