2013-08-25 12 views
90

Ho una pagina Web che fa parte di un sito Web ASP.NET in esecuzione su Azure. Ora funziona bene per un bel po '. All'improvviso, ho improvvisamente un problema con il browser cercando di scaricare un ".map" per Underscore.js. Ho fatto un po 'di lettura e apparentemente JQuery crea file ".map" come strumenti di debug per i file di sorgenti Javascript (".js"). Tuttavia, se guardo la directory degli script per il mio sito web, vedo che questo accade solo per alcuni file sorgente JQuery e non per tutti e non sono sicuro di quale sia lo schema.File Javascript ".map" mancante per Underscore.js durante il caricamento della pagina Web ASP.NET

Tuttavia, perché il browser tenta di caricare un file "map" per Underscore.js che non fa parte di JQuery? Inoltre, perché questo dovrebbe improvvisamente accadere? Ho aggiunto Underscore.js alla pagina web un po 'di tempo fa e non ho mai avuto questo problema prima.

L'errore esatto che provo quando guardo nella scheda Chrome Debugger Console è:

GET http://myazureapp.cloudapp.net/Scripts/underscore-min.map 404 (Not Found) Scripts/underscore-min.map: 1

risposta

219

quello che stai vivendo è source mapping. Ciò consente di eseguire il debug con codice leggibile negli strumenti di sviluppo del browser quando si lavora con file JS minificati.

La versione minified di Underscore ha questa riga alla fine del file:

//# sourceMappingURL=underscore-min.map 

vostro suo navigatore strumenti sviluppatori cercheranno di scaricare underscore-min.map quando incontrano questa linea.

Se si vuole sbarazzarsi dell'errore, sia:

  1. rimuovere quella linea dal underscore-min.js
  2. Aggiungere underscore-min.map e underscore.js al progetto.
+1

Poiché non desidero toccare i codici sorgente (andrebbero persi nel prossimo aggiornamento), esiste qualche configurazione di tipo grunt per imporre un nome diverso anziché "underscore-min.map"? O qualsiasi altro modo più semplice invece di cambiare manualmente il codice? – lubosdz

+0

@lubosdz hai provato il punto 2 nella risposta? Nel mio caso ho semplicemente creato un file vuoto aggiuntivo con lo stesso nome dell'originale ma con un'estensione .map invece di .js (ad es. Foo.min.js => aggiungi vuoto foo.min.map). Ciò mantiene il browser felice e non influisce sul codice sorgente o sugli aggiornamenti. – pasx

Problemi correlati