2010-09-20 27 views
5

Sorum, ilk olarak this one'a benzer olsa da, daha basit bir soru gibi görünüyor ve yapı sistemindeki bir hatayı işaret ediyor olabilir. Dojo uygulamam için özel bir derleme oluşturdum. Ben sadece burada profil komut/nesne nasıl göründüğü ve şu anda bir katman oluşturmak gibi:Dojo Build with NLS - requireLocalization (..) başarısız mı?

dependencies = { 
    stripConsole: "all", 
    action: "release", 
    optimize: "shrinksafe", 
    releaseName: "myProject", 
    // list of locales we want to expose 
    localeList: "en-gb,en-us,de-de", 

    layers: [ 
     { 
      // Name: a relative path from the dojo.js in the desination directory. 
      name: "../../myProject.js", 
      dependencies: [ 
       "myPackage.MyDataStore", 
       // MyWidget depends on a few other widgets, and has its own 
       // translation files. 
       "myPackage.MyWidget" 
      ] 
     } 
    ], 

    prefixes: [ 
     // These paths are relative to the location of dojo.js 
     [ "dijit", "../dijit" ], 
     [ "dojox", "../dojox" ], 
     [ "myPackage", "../../../src/myPackage" ] 
    ] 
} 

Ben şu dizin yapısı içinde dosya üretir Bu tanımla bir yapı çalıştırın: Son olarak

release/ 
release/myProject/ 
release/myProject/dijit/ 
         ... dijit ... 
release/myProject/dojo/ 
         ... dojo ... 
release/myProject/dojox/ 
         ... dojox ... 
release/myProject/myPackage/ 
          ... my custom package ... 
release/nls/ 
      myProject_en-us.js 
      myProject_de.js 
      etc.. 
../myproject.js 
../myProject.js.uncompressed.js 

<script type="text/javascript"> 
    var djConfig = { 
     debug: true, 
     parseOnLoad: false, 
     modulePaths: { // paths to directories in relation to dojo's location.... hurr. 
      'myPackage': '../myPackage', 
      'dojox': '../dojox', 
      'dijit': '../dijit' 
     } 
    }; 
</script> 
<script type="text/javascript" src="./release/myProject/dojo/dojo.js.uncompressed.js"></script> 
<script type="text/javascript" src="./release/myProject.js.uncompressed.js"></script> 
<script type="text/javascript"> 
dojo.addOnLoad(function(){ 
    dojo.require('myPackage.MyDataStore'); 
    dojo.require('myPackage.MyWidget'); 

    var store = new myPackage.MyDataStore(); 
    var widget = new myPackage.MyWidget({ 
     store: store 
    }, dojo.byId('testWidget')); 

    widget.startup(); 
}); 
</script> 

Ama ne yazık ki, Kundakçı bana bu tükürür:

-, benim test HTML sayfası aşağıdaki var Aslında doğru yüklenmiyor

Yukarıdaki hata giden kod bazı yoluyla takip ettik ve dosyanın sonuna dojo.i18n._preloadLocalizations() çağrısı gibi görünüyor Gerçekleşiyor düşünün ne

Bundle not found: MyWidget in myPackage , locale=en-us 

nls dosyası, ./release/nls numaralı telefondan.

<script> etiketleri ile nls dosyaları dahil olmak üzere el ile başvurmadan nasıl düzeltebilirim?

+0

Benzer sorunlarla karşılaşıyorum. Yapı sisteminde veya yükleyicide bir sorun varsa, bana açık değil. Katman dosyamın dojo.js ile aynı dizinde (yani, "name: 'myProject.js'") olmasını ve bu yolu kullanmak için betik etiketini (./release/ myProject/dojo/myProject.js.uncompressed.js), daha sonra yükleyici doğru nls dosyalarını çeker. – tommyjr

+0

Bunun, bunun djConfig nesnesindeki modulePath'leriniz ile ilgili olduğunu tahmin ediyorum. Firebug'a veya benzerine bakarsanız, nls, nls'yi nereden yüklüyor? –

cevap