web-dev-qa-db-fra.com

Ressource interprétée comme un script mais transférée avec le type MIME text / plain - pour un fichier local

Je reçois une alerte "Ressource interprétée comme un script mais transférée avec le type MIME text/plain" dans Google Chrome lors de l'inclusion d'un fichier de script local.

Je sais que le problème apparaît lors du chargement d'un fichier à partir d'un serveur ou via ajax, ce qui dépend le plus souvent du mauvais en-tête défini.

La chose étrange est que je reçois cet avertissement même s'il est exécuté à partir d'un dossier local: file:///C:/test/foo.html

Cela se produit uniquement dans Chrome avec le code HTML le plus élémentaire:

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

bar.js est aussi simple que possible:

function hello() {}

J'ai essayé d'ajouter une balise META:

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

et testé avec d'autres doctypes mais rien ne semble aider.

Ce n’est évidemment pas un réel problème, car les scripts fonctionnent toujours correctement, mais je travaille sur un grand projet et compte actuellement environ 150 scripts inclus. Il est donc difficile de voir quand un avertissement réel se produit entre eux.

Tout fonctionne bien lorsque je lance le fichier sur un serveur, localement ou à distance.

Des idées sur pourquoi chrome m'énerve avec ça?

98
batzkoo

Je l'ai compris!

Le programme d'installation de Visual Studio doit avoir ajouté une ligne erronée au registre.

ouvrez regedit et jetez un oeil à cette clé de registre:

enter image description here

Voir cette clé? La clé de type de contenu? change sa valeur text/plain en text/javascript.

Enfin chrome peut respirer à nouveau facilement.

Je dois noter que ni le type de contenu ni le type Percieved ne sont présents par défaut sous Windows 7, vous pouvez donc probablement les supprimer en toute sécurité, mais le minimum que vous devez faire est cette modification.

En tout cas j'espère que ça corrige ça aussi pour vous!

196
Simon Sarris

J'ai essayé de résoudre ce problème en utilisant cette méthode, mais cela n'a pas fonctionné pour moi.

Mon problème était que le gestionnaire IIS n'avait pas de types MIME dans les fonctionnalités HTTP.

J'ai pu l'activer en activant Static Context via ...

-> Panneau de configuration

-> Programmes

-> Activer ou désactiver les fonctionnalités de Windows

-> Internet Information Services

-> Services Web

-> Fonctionnalités HTTP communes

-> [X] contenu statique.

Après cela, les types MIME sont apparus et tout a recommencé à fonctionner.

30
user2383049

La réponse acceptée est excellente! Cependant, il suffit de poster une réponse pour ceux qui rencontrent des problèmes comme moi, qui utilisent parfois un ordinateur de département/collège, où je n’ai pas l’autorisation de changer une valeur clé dans regedit.

Changement

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

à

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

Bien que le message d'erreur existe toujours, la page s'est chargée correctement.

0
Richard Wong