具有自定义软件包路径的 Dojo 1.9 配置

dojo 1.9 config with custom package paths

本文关键字:Dojo 配置 路径 自定义 软件包      更新时间:2023-09-26

所以我可以看到该文件是从 dojoConfig 引用正确加载的,但是当我尝试使用该模块时,它的"未定义"任何建议:

更新:这将加载文件,但是当我将变量扔到控制台中时,什么也没出来。 检查它时,我看到很多文本,而不是我放在里面的 objs 数组。

索引.html:

<script>
   dojoConfig = {
     tlmSiblingOfDojo: true,
     async: true,
     parseOnLoad: false,
     packages: [
                { name: "main", location: "/components/3.6compact/js/dojo/dojo/main"},
                { name: "jquery", location: "/scripts/libs", main: "jquery"},
                {name: "jam", location: "/scripts/mylibs", main: "lod"}
            ]
        };
    </script>
    <script src="/components/3.6compact/js/dojo/dojo/dojo.js"></script>
    <script src="/scripts/app.js"></script>

LOD.js:

define([], function(){
  var lod = [{
    'level': 0,
    'resolution': 156543.033928,
    'scale': 591657527.591555
}, {
    'level': 1,
    'resolution': 78271.5169639999,
    'scale': 295828763.795777
}
 ];
 return lod;
 });

应用.js:*

require(['jam'], function(jam){
  console.log(lod);
});

很难在像 jsfiddle 这样的东西上提供一个示例,我们无法按文件路径指定资源,但我认为问题出在 javascript 中的模块 ID 上。在 dojoConfig 中,location 属性定义了该包中的模块所在的目录的路径。

如果您的lod模块位于 /scripts/mylibs/lod.js 中,则需要lod/lod

require(['lod/lod'], function(lod) {
    console.log("lod module:", lod);
});

这是 dojo 配置的文档。我会看看"加载程序配置"部分。

无论如何,我尝试了一个jsfiddle,这可能很有用:http://jsfiddle.net/tupton/ftN6h/

请注意控制台中的错误:

"lod":

GET http://fiddle.jshell.net/scripts/mylibs/LOD.js 404 (Not Found)

和"住宿/住宿":

GET http://fiddle.jshell.net/scripts/mylibs/lod.js 404 (Not Found)

我不熟悉包配置的"main"属性,但当您尝试要求整个包时,它似乎就是它正在使用的。也许尝试将其更改为"lod",以便查找".../lod.js"?