我通過在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