sto avendo abbastanza semplice struttura di directory per gli script:Richiede JS sta ignorando la mia configurazione
/js/ <-- located in site root
libs/
jquery-1.10.1.min.js
knockout-2.2.1.js
knockout.mapping.js
models/
model-one.js
model-two.js
...
require.js
config.js
Dato che il motore sito utilizza gli URL semplificati che sto utilizzando percorsi assoluti in <script>
:
<script type="text/javascript" data-main="/js/config.js" src="/js/require.js"></script>
RequireJS config:
requirejs.config({
baseUrl: "/js/libs",
paths: {
"jquery": "jquery-1.10.1.min",
"knockout": "knockout-2.2.1",
"komapping": "knockout.mapping"
}
});
Da qualche parte in HTML:
Quindi il problema è che RequireJS ignora completamente baseUrl
e paths
definito nel file di configurazione. Ottengo 404 errori per ogni modulo richiesto nel codice qui sotto. Vedo in console browser RequireJS tenta di caricare questi moduli da /js/
senza traduzioni percorso:
404: http://localhost/js/jquery.js
404: http://localhost/js/knockout.js
404: http://localhost/js/komapping.js
Tuttavia dopo che la pagina viene caricata e gli errori sono mostrati digito console e ...
> require.toUrl("jquery")
"/js/libs/jquery-1.10.1.min"
Perché così? Come risolvere questo problema?
È la mia prima esperienza con RequireJS, quindi mi sento come se avessi saltato qualcosa di molto semplice e ovvio. Aiuto per favore.
Aggiornamento
appena scoperto questa domanda: Require.js ignoring baseUrl
E 'sicuramente il mio caso. Vedo nel pannello Rete che config.js
non è stato caricato completamente prima che require(...)
attivi il caricamento della propria dipendenza.
Ma non voglio posizionare il mio require(...)
in configurazione perché è molto specifico per la pagina che lo chiama. Non ho mai notato un tale problema con l'asincronicità in nessun esempio visto prima. Come fanno gli autori di questi esempi a farli funzionare?
Hai provato a rimuovere il primo finali oblique 'js/librerie /'? – paka
@paka Ho appena provato. Nessun cambiamento. –
funziona con percorsi assoluti? – paka