Dijit模块脚本未正确添加;路径不正确

时间:2012-06-29 19:27:20

标签: javascript dojo

使用Dojo 1.7.2

初学者到Dojo,尝试制作一个简单的自定义小部件。

我根据教程创建了一个具有此定义的模块:

define(['dojo/_base/declare', 'dijit/_Widget', 'dijit/_Templated', 'dojo/text!./templates/groupNode.html'], ...

我这样称呼它:

require(['modules/groupNode', 'dojo/domReady!'], ...

我的dojoConfig看起来像这样:

var dojoConfig = {
    async: true,
    baseUrl: "./",
    packages: [
        { name: "dijit", location: "//ajax.googleapis.com/ajax/libs/dojo/1.7.2/dijit" },
        { name: "dojo", location: "//ajax.googleapis.com/ajax/libs/dojo/1.7.2/dojo" },
        { name: "modules", location: "modules" }
    ]
};

但是,页面加载后 ,此模块永远不会完成定义;当我检查页面源时,我看到脚本包括如下所示:

<script type="text/javascript" charset="utf-8" src="modules/groupNode.js">
<script type="text/javascript" charset="utf-8" src="../dijit//_Widget.js">
<script type="text/javascript" charset="utf-8" src="../dijit//_Templated.js">

显然,dijit模块没有计算正确的路径,也没有正确加载。

仅使用dojo模块的其他自定义模块正常工作。

控制台中记录了无错误

1 个答案:

答案 0 :(得分:1)

我之前从未在configuration内使用过套餐。我一直使用modulePaths。以下是配置Dojo的示例:

<script src="//ajax.googleapis.com/ajax/libs/dojo/1.7/dojo/dojo.js" 
  data-dojo-config="
    isDebug: true, 
    parseOnLoad: false,
    baseUrl: '/',
    modulePaths: {modules: 'modules'}
"></script>

所以这意味着在web目录的根目录中,存在一个名为modules的子目录,这就是你的自定义javascript所在的位置。