2012-09-04 22 views
9

Sto avendo un problema con i percorsi relativi in ​​requirejs.percorso relativo non funziona con i percorsi

Prima di tutto, ho la seguente struttura. Sono in esecuzione con un host virtuale (os.com) e il percorso è os.com/test

enter image description here

index.html

<script data-main="config" src="require.js"></script> 

config.js

require.config({ 

    baseUrl: "./apps", 
    deps: ['ui'], 
    paths: { 
    ui: 'ui/ui', 
    system: 'system/system', 
    core: 'core/core' 
    } 


}); 

ui.js

define(['./class/menuBuilder',"./class/window"], function(menuBuilder, windowBuilder){ 


    return { 
     menuBuilder: menuBuilder, 
     windowBuilder: windowBuilder 
    } 

}); 

Quando lo eseguo, ottengo i seguenti errori.

GET http://os.com/test/apps/class/menuBuilder.js 404 (Not Found) 
GET http://os.com/test/apps/class/window.js 404 (Not Found) 

Se prendo 'ui' immobiliare da un immobile dei 'percorsi' quindi modificare dipendenze a [ 'ui/ui'], funziona, ma vorrei utilizzare i percorsi.

config.js modificati

require.config({ 

    baseUrl: "./apps", 
    deps: ['ui/ui'], 
    paths: { 
    system: 'system/system', 
    core: 'core/core' 
    } 


}); 

Come faccio a cambiare la mia configurazione per rendere i percorsi e il lavoro relativo percorso insieme?

risposta

12

Ho avuto un problema simile. Non avevo deps: 'ui' parte nella mia configurazione, solo l'impostazione del percorso, ma ancora il relativo riferimento del modulo ('./class/menuBuilder') non funzionava dal modulo caricato con path ("ui: 'ui/ui '") e userebbe invece baseUrl. Per risolverlo, ho definito 'ui' come pacchetto:

require.config({ 

    baseUrl: "./apps", 
    deps: ['ui'], 
    paths: { 
    system: 'system/system', 
    core: 'core/core' 
    }, 
    packages : [ 
    { 
     name: 'ui', 
     location : 'ui', 
     main : 'ui' 
    }, 
    ] 

}); 

In questo caso richiedono caricherà correttamente moduli relativamente-pathing.

Ecco un post utile: Relative paths with RequireJS modules/packages

4

La soluzione è quella di utilizzare la configurazione mappa, non la configurazione percorsi. Le configurazioni dei percorsi dovrebbero essere utilizzate solo per le cartelle, non per i moduli stessi. Le configurazioni della mappa si applicano ai singoli moduli.

Quindi cercate:

require.config({ 
    map: { 
    '*': { 
     'ui': 'ui/ui' 
    } 
    } 
}); 
Problemi correlati