我使用的建筑系统,它提供了试图建立一个Dojo应用程序。我有一个主要的index.php文件加载道场,dijit的和DojoX中图书馆大厦道场应用:层下载而不是负载
项目的结构是这样的:
--root --_profile --_release --dojo-1.3.2-src -- dijit -- dojo -- dojox -- util --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 DIR预期:
--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
在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,所以现在我有点困惑。
有什么想法?
谢谢!
我正在使用完全相同的结构的测试项目,而是加载自己的所有的部件,我只是包括一些dependendies并能正常工作。它正确地加载文件并加载应用程序(顺便超快),所以我想是某种错误进入代码。但是在编译生成系统发现代码中的一些JS错误,所以我想,如果会有这将是任何错误仍然告诉我好吗?如果它可以下载整个文件,为什么不加载应用程序? – luso
难道是某些问题的i18n文件?我不明白为什么它会创建nls文件夹,... – luso
所以,在这里的情况:通常,错误(无法加载...)出现如果: 找不到文件(不是这个,它下载它) 你忘了dojo.provide()文件(不是这个,是第一行) 代码中有一个错误:我想它一定是这样的,但是当应用程序没有建立时,它工作正常,我想道场建设者不会引入错误... – luso