gpt4 book ai didi

dojo - 构建道场应用程序 : layer downloads but not load

转载 作者:行者123 更新时间:2023-12-03 02:17:54 27 4
gpt4 key购买 nike

我正在尝试使用它提供的构建系统构建一个 Dojo 应用程序。我有一个主index.php 文件加载dojo、dijit 和dojox 库

该项目的结构类似于:

--root  --_profile  --_release  --dojo-1.3.2-src    -- dijit    -- dojo    -- dojox    -- util  --myApp    --init.js    --folders_with_all_my_code  --index.php

In the _profile folder I have my myApp.profile.js including this:

dependencies = {

stripConsole : 'all',
action : 'clean,release',
optimize : 'shrinksafe',
releaseName : 'myApp',
localeList : 'fr,es,it',

layers: [
{
name : "../app/init.js",
resourceName : "myApp.init",
dependencies : [
"myApp.init"
]
}
],

prefixes: [
[ "dijit", "../dijit" ],
[ "dojox", "../dojox" ],
[ "app", "../../app" ]
]

};

我正在启动此脚本来构建应用程序:

cd ../dojo-1.3.2-src/util/buildscripts

./build.bat profileFile=../../../_profile/myApp.profile.js releaseDir=../../../_release

它构建正常并按预期设置 _release 目录:

--root  --_profile  --_release    -- myapp       -- app          -- all_my_code          -- nls          -- init.js.uncompressed.js          -- init.js (a 2Mb file with all compressed dependencies)       -- dijit       -- dojo       -- dojox       -- util  --dojo-1.3.2-src    -- dijit    -- dojo    -- dojox    -- util  --myApp    --  --index.php

In the index.php file, before building I include this:

var djConfig = {
parseOnLoad: true,
usePlainJson: true,
modulePaths : { 'app' : '../../myApp/app' }
};

script ... src="/dojo-1.3.2-src/dojo/dojo.js"> ... /script
script ... dojo.require('app.init'); ... /script

并且工作正常。但是,一旦我编译了层,我就应该更改指向 dojo.js 的脚本以指向新创建的层,并将 dojo.require 指向新的压缩层。由于在我指定的配置文件中,该层的位置与原始 init,js 文件相同,因此我得到以下结果:

var djConfig = {
parseOnLoad: true,
usePlainJson: true,
<s>modulePaths : { 'app' : '../../myApp/app' }</s>
};

<s>script ... src="/dojo-1.3.2-src/dojo/dojo.js"> ... /script</s>
<s>script ... dojo.require('app.init'); ... /script</s>

script ... src="/_release/myApp/dojo/dojo.js"> ... /script
script ... dojo.require('app.init'); ... /script

实际上,当我启动应用程序时,它仅正确加载一个文件,因此我猜路径一切正常。实际上,在 Firebug 日志中,我可以看到 GET 请求,如果我展开它,我可以看到所有压缩的应用程序。然而,加载后它就会启动一个异常:

Could not load 'app.init'; last tried '../../myApp/app/init.js'

我不确定,但这似乎不是路径问题,因为它正在下载文件 init.js,所以现在我有点困惑。

有什么想法吗?

谢谢!

最佳答案

尝试使用 modulePathsdojoConfig.baseUrl

您还可以尝试 customBase 属性,这样您只需加载 dojo.js,它将包含所有内容,甚至是您的应用程序。 (https://dojotoolkit.org/reference-guide/1.10/build/customBase.html)

关于dojo - 构建道场应用程序 : layer downloads but not load,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8214897/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com