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

97

Je reçois un avertissement "Ressource interprétée comme un script mais transférée avec un texte de type MIME" 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, qui dépend le plus souvent de la définition de mauvais en-têtes.

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 ne se produit que dans Chrome avec le code HTML le plus basique:

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

bar.js est aussi 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 vrai problème puisque les scripts fonctionnent toujours bien, mais je travaille sur un grand projet et j'ai actuellement environ 150 scripts inclus. Il est donc difficile de voir quand un avertissement réel se produit entre eux.

Tout fonctionne bien lorsque j'exécute le fichier sur un serveur, localement ou à distance.

Des idées sur les raisons pour lesquelles Chrome me dérange avec ça?

batzkoo
la source
vous n'avez pas installé le dernier Visual Studio l'autre jour, n'est-ce pas? Cela a commencé à m'arriver et c'est la seule chose qui a changé ...
Simon Sarris
oui, VS Express 2012 RC il y a quelques semaines. J'ai pensé à cela aussi alors j'ai créé les fichiers avec notepad ++ à la place, mais le problème reste le même. Si VS est à l'origine de cela, ils doivent avoir changé un réglage / paramètre global? La question est quoi, et comment puis-je le modifier?
batzkoo
J'essaie toujours de comprendre la même chose. Cela semble être une chose mondiale et cela s'est produit précisément après l'installation de VS2012. Je vous ferai savoir si je trouve quelque chose. Pour être clair, je n'utilise pas réellement Visual Studio pour l'édition de fichiers, ce qui le rend plus étrange.
Simon Sarris

Réponses:

195

Je l'ai compris!

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

ouvrez regeditet jetez un œil à cette clé de registre:

entrez la description de l'image ici

Vous voyez cette clé? La clé de type de contenu? change sa valeur de text / plain à text / javascript.

Enfin, le chrome peut à nouveau respirer.

Je dois noter que ni Content Type ni PercievedType ne sont présents par défaut sur Windows 7, vous pouvez donc probablement les supprimer tous les deux en toute sécurité, mais le minimum que vous devez faire est cette modification.

Quoi qu'il en soit, j'espère que cela résout le problème pour vous aussi!

Simon Sarris
la source
8
Bravo à vous! pour trouver la solution à ce désagrément. Je n'ai pas supprimé la clé, mais j'ai plutôt changé la valeur des données en texte / javascript. Merci!
batzkoo
haha je l'ai changé en texte / script et cela n'a pas fonctionné, peut-être que j'aurais dû essayer text / javascript!
Simon Sarris
Merci pour la solution! J'ai eu le même problème ... En fait, avec le type MIME plain / text pour moi, le code javascript avait généré des erreurs. J'avais des chaînes (dans un tableau) contenant des lettres trouvées dans l'encodage UTF-8 vu dans les langues d'Europe de l'Est comme "ő". "Gergő" est un joli prénom hongrois. Les erreurs ont également disparu grâce à Dieu, car je ne pouvais pas exécuter mon code - mais je n'ai pas enquêté davantage sur cela.
Zoltan
2
Wow, comment avez-vous découvert cette solution?
Pakman
4
@Pakman J'ai eu le problème un jour, puis j'ai acheté un nouvel ordinateur et je n'ai pas eu le problème. Ensuite, lorsque j'ai installé Visual Studio 2012, j'ai remarqué qu'il réapparaissait, alors j'ai pensé que c'était le coupable. J'ai pensé que cela avait changé quelque chose dans les associations de fichiers du registre parce que tous mes .jsfichiers avaient .txtdes icônes, alors je suis allé m'assurer qu'ils étaient associés au bon type de données. Ils ne l'étaient pas!
Simon Sarris
30

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 Windows

-> Services d'information Internet

-> Services World Wide Web

-> Fonctionnalités HTTP communes

-> [X] Contenu statique.

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

user2383049
la source
0

La réponse acceptée est excellente! Cependant, juste pour publier 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 modifier une valeur de 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.

Richard Wong
la source
2
Mais le problème d'OP est que la page se charge correctement, mais il reçoit toujours un message d'erreur. Cela ne semble rien changer.
Teepeemm