2016-02-01 16 views
18

Ho una pagina Web che utilizza Twitter Bootstrap. Funziona bene con Chrome, Firefox e Safari. Tuttavia, quando provo a vederlo in Edge su Windows 10, ottengo un sacco di errori 403 che dicono che non è riuscito a caricare una manciata di .less file dal CDN Bootstrap. Perché vengono richiesti i file .less se il browser non può fare nulla con loro? Non sto usando MENO affatto, semplicemente CSS3, che sta benissimo. Come faccio a smettere?Perché Bootstrap tenta di caricare file MENO in Edge?

Deluge of unnecessary LESS file requests

+1

Molto probabilmente hanno tentato di aggiungere il supporto per CSS sourcemaps ma non hanno ancora risolto questa funzione. (A meno che non provi effettivamente a richiedere quei file finché non apri effettivamente il suo debugger/inspector di stylesheet). –

+1

P.S. Ovviamente per "loro" intendo MS, non Bootstrap. –

+1

Edge richiede i file quando gli strumenti F12 vengono aperti dall'aspetto delle cose. Chrome non effettua la richiesta fino a quando non viene spostato il file. Anche gli strumenti di Chrome 403 non sembrano riportare il 403 nella scheda di rete. Hai solo un file vuoto. Il comportamento di Edge è probabilmente quello che preferirei in quanto con Chrome è molto facile non rendersi conto di avere un problema. –

risposta

31

La buona notizia è che non sarà che interessano gli utenti regolari del sito. La cattiva notizia è che questo sta accadendo anche in Chrome in una certa misura, è solo che la scheda di rete in Chrome non segnala gli errori 403.

Nel file CSS che si collega a c'è una linea alla fine del file:

/*# sourceMappingURL=bootstrap.min.css.map */ 

Si tratta di mappe di origine e dà link a tutti i file di origine utilizzati per generare il CSS minified che è nel tuo browser.

Nel caso di bootstrap del CDN punta ai file che non esistono come http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/less/scaffolding.less

Il file di origine mappa verrà scaricato solo se si dispone di mappe di origine abilitati e gli strumenti dev aperta. Le impostazioni predefinite di Edge si basano su e, per quanto posso dire, non c'è modo di spegnerle (ma ricorda che questo accadrà solo quando gli strumenti di sviluppo sono aperti, ho confermato questo comportamento usando Fiddler), quindi quando si preme f12 allora è andando a cercare e recuperare i file mappati di origine. Chrome funziona in modo leggermente diverso, scaricherà la mappa di origine, ma non tenterà di scaricare il file .less fino a quando non sarai in grado di accedere al file sorgente.

Se uno dei file .less restituisce un 403 Risposta non consentita Edge lo segnala nella scheda di rete. Chrome dosen't.

Se si utilizza il debugger http come Fiddler, si vedrà che Chrome richiede effettivamente i file e riceve anche una risposta 403, tuttavia non la segnala nella scheda di rete. Quando si utilizza Fiddler per superare il problema con https, ho modificato il file CSS in modo che indicasse l'URL non https. ad esempio: http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css

La correzione per questo problema è quella di correggere i file che sono 403 nella mappa di origine. Ho sollevato un problema sul bootstrap maxcdn GitHub repro: https://github.com/MaxCDN/bootstrap-cdn/issues/629

+1

Grazie Martin. Questo problema (n. 629) è stato risolto su GitHub. – jdorfman

+0

Una correzione rapida potrebbe essere (sulla versione live del sito) per rinominare il file 'bootstrap.min.css.map' (ad esempio 'disabled-bootstrap.min.css.map') e inserire un file vuoto chiamato 'bootstrap' . min.css.map 'nella stessa cartella. Sembra una soluzione rapida e sporca nel mio caso. –

0

C'è un problema noto con MaxCDN stesso.(E CDNjs pure)

problemi registrato per riferimento:

analisi

CDN:

Per sourceMappingURL che è bootstrap.min.css.map per bootstrap file, qualsiasi file di estensione .less (ad esempio this file) non riescono a caricare con lo stato HTTP 403 (vietato).

Chrome sta eliminando questo problema nella console degli sviluppatori, tuttavia Edge non lo è. Il problema quando si accede ai file .less è riproducibile accedendo al collegamento this.

Questo problema non è solo con MaxCDN, ma anche con CDNjs. I collegamenti per CDNjs sono this, this & this

Problemi correlati