我正在尝试使用它提供的构建系统构建一个 Dojo 应用程序。我有一个加载 dojo、dijit 和 dojox 库的主 index.php 文件
项目的结构类似于:
- 根 - _轮廓 - _发布 --dojo-1.3.2-src -- 迪吉特 ——道场 -- dojox -- 实用程序 --myApp --init.js --folders_with_all_my_code --index.php
在 _profile 文件夹中,我的 myApp.profile.js 包括:
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 目录:
- 根 - _轮廓 - _发布 --我的应用 - 应用程序 -- all_my_code --nls -- init.js.uncompressed.js -- init.js(包含所有压缩依赖项的 2Mb 文件) -- 迪吉特 ——道场 -- dojox -- 实用程序 --dojo-1.3.2-src -- 迪吉特 ——道场 -- dojox -- 实用程序 --myApp -- --index.php
在 index.php 文件中,在构建之前,我包含以下内容:
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,所以现在我有点困惑。
任何想法?
谢谢!