加载定制的 Dojo 模块

Load customized Dojo module

我是 Dojo 的新手,所以这听起来可能很愚蠢。

我正在使用Dojo 1.7 作为托管资源(即我下载了dojo 包并将其放在源代码下)。然后我在另一个文件夹中定义了一个自定义模块。结构如下所示:

/
  libs/
    js/
      dojo/
        dojo.js
  myPage/
    myModules/
      myCustomizedModule.js
    index.html

我正在使用 "define" 函数在 myPage/myModules/myCustomizedModule.js

中定义一个模块

在 "myPage" 文件夹中,我正在使用 index.html 来要求自定义模块:

<script>
   require(["myPage/myModules/myCustomizedModule"], function(myCustomizedModule){
     // Do something.
   })
</script>

但是,我无法让它工作:控制台报错: “http://localhost/myDojoTest/libs/js/dojo/myPage/MyModules/myCustomizedModule.js 404(未找到)”。

我知道这个目录不对,因为 "myPage" 文件夹不在 "libs/js/dojo" 下。但是似乎在使用 "require" 语句时,代码没有使用当前 HTML 文档的相对路径,而是使用 dojo.js 文件的当前路径。

我能做些什么来正确引用我的自定义模块吗?

非常感谢!

根据您的要求,您需要如下所示设置包

<!-- dojo configuration options -->
<!-- For Package configuration refer tutorial at     http://dojotoolkit.org/documentation/tutorials/1.7/modules/ -->
<script type="text/javascript">
        var dojoConfig = {
            async: true,
            baseUrl: "/",
            tlmSiblingOfDojo: false,
            packages: [
                { name: "dojo",  location: "libs/js/dojo" },
                { name: "dijit", location: "libs/js/dijit" },
                { name: "dojox", location: "libs/js/dojox" },
                { name: "myModules", location: "myPage/myModules" }
            ]
        };
    </script>

您可以在 require 函数调用中访问 dojo、dijit 和 myModules。

记住您需要模块之前。

<script>
        require([
            //Require resources.
            "dojo/store/Memory",
            "myModules/myCustomizedModule"
        ], function(Memory, myCustomizedModule){
           ....
        }
        );
</script>

希望对您有所帮助。