1

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

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

下面是显示问题的萤火虫日志:

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"

前 2 个路径(以及之前的很多路径)已正确加载,现在第三个路径不正确,基础 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>
4

1 回答 1

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
于 2014-05-13T09:41:22.437 回答