使用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
模块的其他自定义模块正常工作。
控制台中记录了无错误。
答案 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所在的位置。