私はhttp://dojotoolkit.org/documentation/tutorials/1.7/hello_dojo/demo/module.htmlの例に取り組んでおり、次のようなディレクトリ構造を作成しました
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 からローカルホストにサービスを提供します。
サブディレクトリ内に配置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 では、元の hadlocation.pathname.replace(/\/[^/]+$/, '')
が空の文字列に評価され、ローダーが CDN の場所で mymodule.js を検索するようにします (私も試しましたに場所を設定しまし"/"
たが、それにより で検索されましたhttp://mymodule.js/
)。
djt2/
Location #2 では、接頭辞が...であることは少し神秘的です。
誰かがそれを説明したり、ドキュメントに案内したりできれば (私は新しいフレームワークを学ぶことに少し圧倒されています :-)。