单层dojo构建结果为dijit.Menu的“undefined./resources/blank.gif”

时间:2010-01-23 21:57:41

标签: dojo

似乎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.目录并将图像粘贴在那里来解决它。

帮助!

1 个答案:

答案 0 :(得分:3)

我相信引导程序会查找包含“dojo.js”的脚本标记,以确定加载资源的路径。如果必须重命名dojo.js,请尝试在加载重命名的Dojo的SCRIPT标记之前定义djConfig.baseUrl