2011-11-21 27 views
3

我使用的建筑系统,它提供了试图建立一个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,所以现在我有点困惑。

有什么想法?

谢谢!

+0

我正在使用完全相同的结构的测试项目,而是加载自己的所有的部件,我只是包括一些dependendies并能正常工作。它正确地加载文件并加载应用程序(顺便超快),所以我想是某种错误进入代码。但是在编译生成系统发现代码中的一些JS错误,所以我想,如果会有这将是任何错误仍然告诉我好吗?如果它可以下载整个文件,为什么不加载应用程序? – luso

+0

难道是某些问题的i18n文件?我不明白为什么它会创建nls文件夹,... – luso

+0

所以,在这里的情况:通常,错误(无法加载...)出现如果: 找不到文件(不是这个,它下载它) 你忘了dojo.provide()文件(不是这个,是第一行) 代码中有一个错误:我想它一定是这样的,但是当应用程序没有建立时,它工作正常,我想道场建设者不会引入错误... – luso

回答