我通过在http://dojotoolkit.org/documentation/tutorials/1.7/hello_dojo/demo/module.html的例子中工作,我已经创建了一个目录结构如下包装位置如何在Dojo中工作?
w:/djt2/index.html
w:/djt2/js/mymodule.js (exact copy of http://dojotoolkit.org/documentation/tutorials/1.7/hello_dojo/demo/myModule.js)
我然后设置Tinyweb Web服务器,以便将W服务本地主机:/ djt2
我VE改变index.html
一点点,调整为将mymodule.js
的js
子目录中(我已经删除过下面的评论):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Tutorial: Hello Dojo!</title>
<script>
var dojoConfig = {
async: true,
packages: [{
name: "djt2",
location: '/js' /* Location #1 */
}]
};
</script>
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.7.2/dojo/dojo.js"></script>
</head>
<body>
<h1 id="greeting">Hello</h1>
<script>
require(["djt2/mymodule"], function(myModule){ /* Location #2 */
myModule.setText("greeting", "Hello Dojo!");
setTimeout(function(){
myModule.restoreText("greeting");
}, 3000);
});
</script>
</body>
</html>
这工作,但我不能完全肯定我明白为什么...特别是,在位置#1,原来有location.pathname.replace(/\/[^/]+$/, '')
其计算为空字符串,并使加载程序在CDN位置查找mymodule.js(我也尝试将位置设置为"/"
,但这使得它搜索http://mymodule.js/
)。
在位置#2这是一个有点神秘,前缀应该是djt2/
...
如果有人能解释它,或直接我的文档(我有点不知所措学习的新框架:-)。
嗯..没有工作。它尝试从'http:// localhost/djt2/js/djt2/mymodule.js'获取mymodule.js,但由于我是从'w:/ djt2'服务的,因此根目录没有'djt2'文件夹。如果我将baseUrl改为“/ js”,它就可以工作。如果我将baseUrl更改为'“/ js/djt2”'并删除软件包定义,它也可以工作... – thebjorn 2012-07-22 13:46:14
我错过了localhost映射到djt2的部分。是的,baseUrl应该是/ js。 Dojo会寻找以/ js – 2012-07-22 14:37:51
之后的djt2目录中的djt2开头的模块定义/我想知道当需要dijit或dojox时会发生什么,驻留在google cdn中的会发生什么 – mschr 2012-07-23 20:21:57