Risorsa interpretata come script ma trasferita con tipo MIME text / plain - per file locale


97

Ricevo un avviso "Risorsa interpretata come script ma trasferita con testo di tipo MIME / normale" in Google Chrome quando includo un file di script locale.

So che il problema si verifica durante il caricamento di un file da un server o tramite ajax che molto spesso dipende dall'impostazione di intestazioni sbagliate.

La cosa strana è che ricevo questo avviso anche se viene eseguito da una cartella locale: file:///C:/test/foo.html

Questo accade solo in Chrome con l'html più semplice che ci sia:

<!DOCTYPE html>
    <html>
    <head>
        <script type="text/javascript" src="bar.js"></script>
    </head>
    <body>
    </body>
</html>

bar.js è anche il più semplice possibile:

function hello() {}

Ho provato ad aggiungere un meta tag:

<meta http-equiv="content-script-type" content="text/javascript">

e testato con altri doctype, ma niente sembra aiutare.

Questo ovviamente non è un vero problema poiché gli script funzionano ancora bene, ma sto lavorando a un progetto di grandi dimensioni e attualmente ho circa 150 script inclusi. Pertanto, è difficile vedere quando si verifica un avviso effettivo tra di loro.

Tutto funziona bene quando eseguo il file su un server, localmente o remoto.

Qualche idea sul perché il cromo mi dà fastidio con questo?


non ti è capitato di installare l'ultimo Visual Studio l'altro giorno, vero? Questo ha iniziato a succedere a me e questa è l'unica cosa che è cambiata ...
Simon Sarris

sì, VS Express 2012 RC poche settimane fa. Ho pensato anche a questo, quindi ho creato i file con Notepad ++ ma il problema rimane lo stesso. Se VS sta causando ciò, devono aver modificato alcune impostazioni / parametri globali? La domanda è cosa e come posso cambiarlo di nuovo?
batzkoo

Sto ancora cercando di capire la stessa cosa. Sembra essere una cosa globale ed è successo proprio dopo aver installato VS2012. Ti farò sapere se riesco a trovare qualcosa. Per essere chiari, in realtà non uso Visual Studio per la modifica dei file, il che lo rende più strano.
Simon Sarris

Risposte:


195

L'avevo capito!

Il programma di installazione di Visual Studio deve aver aggiunto una riga errata al registro.

apri regedite dai un'occhiata a questa chiave di registro:

inserisci qui la descrizione dell'immagine

Vedi quella chiave? La chiave del tipo di contenuto? cambia il suo valore da text / plain a text / javascript.

Finalmente il cromo può di nuovo respirare facilmente.

Dovrei notare che né Content Type né PercievedType sono presenti per impostazione predefinita su Windows 7, quindi potresti probabilmente eliminarli entrambi in sicurezza, ma il minimo che devi fare è quella modifica.

Comunque spero che questo lo risolva anche per te!


8
Ben fatto! per aver trovato la soluzione a questo fastidio. Non ho cancellato la chiave ma ho invece cambiato il valore dei dati in text / javascript. Grazie!
batzkoo

haha l'ho cambiato in text / script e non ha funzionato, forse avrei dovuto provare text / javascript!
Simon Sarris

Grazie per la soluzione! Ho avuto lo stesso problema ... In realtà con il tipo MIME plain / text per me il codice javascript aveva generato errori. Avevo alcune stringhe (in un array) contenenti lettere trovate nella codifica UTF-8 vista nelle lingue est-europee come "ő". "Gergő" è un bel nome ungherese comune. Anche gli errori sono andati, grazie a Dio, dal momento che non ho potuto eseguire il mio codice, ma non ho indagato ulteriormente.
Zoltan

2
Wow, come hai scoperto questa soluzione?
Pakman

4
@ Pakman Ho avuto il problema un giorno, poi ho comprato un nuovo computer e non ho avuto il problema. Poi, quando ho installato Visual Studio 2012, ho notato che è riapparso, quindi ho pensato che fosse il colpevole. Ho pensato che fosse cambiato qualcosa nelle associazioni di file del registro perché tutti i miei .jsfile avevano .txticone dall'aspetto, quindi sono andato ad assicurarmi che fossero associati al giusto tipo di dati. Non lo erano!
Simon Sarris

30

Ho provato a risolvere questo problema usando questo metodo ma non ha funzionato per me.

Il mio problema era che il gestore IIS non aveva i tipi MIME nelle funzionalità HTTP.

Sono stato in grado di accenderlo abilitando Static Context tramite ...

-> Pannello di controllo

-> Programmi

-> Attiva o disattiva le funzionalità di Windows

-> Internet Information Services

-> Servizi World Wide Web

-> Funzionalità HTTP comuni

-> [X] Contenuto statico.

Dopo questo, sono comparsi i tipi MIME e tutto ha ripreso a funzionare.


0

La risposta accettata è ottima! Tuttavia, solo per pubblicare una risposta per coloro che incontrano problemi come me, che a volte usano un computer di dipartimento / college, dove non ho il permesso di cambiare alcun valore chiave in regedit.

Modificare

<script type="text/javascript" src="main.js"></script>

per

<script src="main.js"></script>

Sebbene il messaggio di errore esista ancora, la pagina è stata caricata correttamente.


2
Ma il problema di OP è che la pagina viene caricata correttamente, ma riceve comunque un messaggio di errore. Questo non sembra cambiare nulla.
Teepeemm
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.