似乎dijit.Menu依赖于dojo/resources/blank.gif
,当我们执行dojo构建并将其保留在release
目录中时会找到它。我们正在构建单个层 - 我们的构建配置文件如下:
dependencies = {
layers: [{
name: "dojo.js",
dependencies: ["core.bootstrap.dojo_deps"]
}],
prefixes: [
["core", "../../../core"],
["dijit", "../dijit"],
["dojox", "../dojox"]
]
};
当我们尝试将dojo.js重命名为其他内容时,就会出现问题。当我们这样做时,dojo无法再找到dojo/resources
目录。这是一个例子:
<html>
<head>
<script type="text/javascript" src="dojo_release_140_src/release/dojo/dojo/complete-build.js"></script>
<link rel="stylesheet" type="text/css" href="dojo_release_140_src/dijit/themes/dijit.css" />
<link rel="stylesheet" type="text/css" href="dojo_release_140_src/dijit/themes/tundra/Menu.css" />
<script type="text/javascript">
dojo.require("dijit.Menu");
dojo.ready(function(){
pMenu = new dijit.Menu({
targetNodeIds: ["menu"],
leftClickToOpen: true
});
pMenu.addChild(new dijit.PopupMenuItem({
label: "Clocks"
}));
});
</script>
</head>
<body class="tundra">
<a id="menu">menu</a>
</body>
</html>
如图所示,浏览器将尝试获取undefined./resources/blank.gif
;但是,如果我们将complete-build.js
更改为dojo.js
,则会在dojo_release_140_src/release/dojo/dojo/resources/blank.gif
成功找到它。我们不能将名称保持为dojo.js - 现在我们正在通过在我们的域的基础上创建一个undefined.
目录并将图像粘贴在那里来解决它。
帮助!
答案 0 :(得分:3)
我相信引导程序会查找包含“dojo.js”的脚本标记,以确定加载资源的路径。如果必须重命名dojo.js,请尝试在加载重命名的Dojo的SCRIPT标记之前定义djConfig.baseUrl。