我使用的建築系統,它提供了試圖建立一個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