名前空間 => モジュール パスへのパスは、ピリオド (.) を置き換えることで取得されます。つまり、スラッシュをドットに置き換える必要があります。あなたの要求は
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
機能するかは次のとおりです。文字列として渡すパラメーターが「モジュール」と呼ばれると仮定します。
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 .....)