dojo在错误的路径中寻找build.js

时间:2012-09-13 14:32:16

标签: dojo

我正在尝试使用Eclipse Juno 64bit作为开发环境在本地Tomcat(7.0)服务器上运行我的dojo项目。

我昨天遇到了一个问题,关于dojo如何假设文件存储在源树中的位置。

以下是显示问题的firebug日志:

304 Not Modified 23ms dojo.js (Line 295)
GET http://localhost:8080/src/dojo-18/dojo/parser.js

304 Not Modified 46ms dojo.js (Line 295)
GET http://localhost:8080/src/dojo-18/dojo/util.js

404 Not Found 24ms dojo.js (Line 295)
"NetworkError: 404 Not Found - http://localhost:8080/src/dojo-18/dojo/util.js"

前两个路径(以及它们之前很多)正确加载,现在第三个路径不正确,基本dojo文件夹中没有util.js,我不知道为什么dojo会看到那里。

为了解决这个问题,我尝试使用baseUrl属性

更好地描述路径
<script>
    dojoConfig = {
        isDebug: true,
        parseOnLoad: false,
        baseUrl: './src/dojo-18/',
    };
</script>

dojo.js的引用方式如下:

<script src="./src/dojo-18/dojo/dojo.js"></script>

1 个答案:

答案 0 :(得分:0)

Dojo本身并不寻找util.js,如果它正在这样做,你自己导入了一个名为 util 的模块,例如:

require([ "dojo/util" ], function(util) {
    // This will not work because the util module does not exist
});

如果要引用自定义模块,则必须先使用dojoConfig配置包:

<script>
    dojoConfig = {
        isDebug: true,
        parseOnLoad: false,
        baseUrl: './src/dojo-18/',
        packages: [{
            name: 'custom',
            location: '/path/to/custom'
        }]
    };
</script>

然后您可以使用以下方法引用该包中的模块:

require([ "custom/util" ], function(util) {
    // This will load the custom util module
});

在这种情况下,Dojo AMD加载器将在util.js文件夹中查找/path/to/custom,因此它将成为:

/path/to/custom/util.js