Ресурс интерпретируется как скрипт, но передается с типом MIME text / plain - для локального файла


97

Я получаю предупреждение «Ресурс интерпретируется как сценарий, но передается с типом MIME text / plain» в Google Chrome при включении локального файла сценария.

Я знаю, что проблема возникает при загрузке файла с сервера или через ajax, что чаще всего зависит от установки неправильных заголовков.

Странно то, что я получаю это предупреждение, даже если оно запускается из локальной папки: file:///C:/test/foo.html

Это происходит только в Chrome с самым простым HTML:

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

bar.js также настолько прост, насколько это возможно:

function hello() {}

Я пробовал добавить метатег:

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

и протестирован с другими типами документов, но ничего не помогает.

Очевидно, это не настоящая проблема, поскольку скрипты по-прежнему работают нормально, но я работаю над большим проектом, и в настоящее время в него включено около 150 скриптов. Поэтому трудно увидеть, когда между ними возникает фактическое предупреждение.

Все работает нормально, когда я запускаю файл на сервере, локальном или удаленном.

Есть идеи, почему хром меня этим раздражает?


вы ведь случайно не установили последнюю версию Visual Studio на днях? Это начало происходить со мной, и это единственное, что изменилось ...
Саймон Саррис

да, VS Express 2012 RC несколько недель назад. Я тоже думал об этом, поэтому вместо этого я создал файлы с помощью блокнота ++, но проблема осталась той же. Если VS вызывает это, они, должно быть, изменили какой-то глобальный параметр / параметр? Вопрос в том, что и как мне вернуть обратно?
batzkoo

Я все еще пытаюсь понять то же самое. Кажется, это глобальная вещь, и произошло это именно после того, как я установил VS2012. Я дам вам знать, если я что-нибудь выясню. Чтобы было ясно, я на самом деле не использую Visual Studio для редактирования файлов, что делает его более странным.
Саймон Саррис

Ответы:


195

Я понял!

Установщик Visual Studio должен добавить ошибочную строку в реестр.

откройте regeditи посмотрите на этот ключ реестра:

введите описание изображения здесь

Видишь этот ключ? Ключ типа контента? измените его значение с text / plain на text / javascript.

Наконец-то хром снова может дышать легко.

Я должен отметить, что ни Content Type, ни PerccedType по умолчанию отсутствуют в Windows 7, поэтому вы, вероятно, можете безопасно удалить их оба, но минимум, что вам нужно сделать, это это редактирование.

В любом случае, я надеюсь, что это исправит и вас!


8
Вы молодцы! для решения этой проблемы. Я не удалял ключ, а вместо этого изменил значение данных на text / javascript. Спасибо!
batzkoo

ха-ха, я изменил его на текст / скрипт, и это не сработало, может, мне стоило попробовать текст / JavaScript!
Саймон Саррис,

Спасибо за решение! У меня была такая же проблема ... На самом деле с типом MIME plain / text для меня код javascript выдавал ошибки. У меня было несколько строк (в массиве), содержащих буквы, найденные в кодировке UTF-8, которые встречаются в восточно-европейских языках, таких как «ő». "Gergő" - хорошее по отношению к венгерскому имени. Слава богу, ошибки тоже исчезли, так как я не мог запустить свой код, но я не исследовал это дальше.
Золтан

2
Вау, как вы узнали об этом решении?
Pakman

4
@Pakman Однажды у меня возникла проблема, потом я купил новый компьютер, и проблемы не было. Затем, когда я установил Visual Studio 2012, я заметил, что он снова появился, поэтому я решил, что это было виновником. Я подумал, что это что-то изменило в ассоциациях файлов в реестре, потому что все мои .jsфайлы имели .txtзначки поиска, поэтому я пошел, чтобы убедиться, что они связаны с правильным типом данных. Их не было!
Саймон Саррис

30

Я попытался решить эту проблему этим методом, но у меня это не сработало.

Моя проблема заключалась в том, что диспетчер IIS не имел типов MIME в функциях HTTP.

Мне удалось включить его, включив статический контекст через ...

-> Панель управления

-> Программы

-> Включение или отключение функций Windows

-> Информационные службы Интернета

-> Сервисы всемирной паутины

-> Общие функции HTTP

-> [X] Статическое содержимое.

После этого появились MIME-типы и все снова заработало.


0

Принятый ответ - отличный! Однако просто для того, чтобы опубликовать ответ для тех, кто сталкивается с такой проблемой, как я, кто иногда использует компьютер факультета / колледжа, где у меня нет разрешения изменять какое-либо значение ключа в regedit.

+ Изменить

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

к

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

Хотя сообщение об ошибке все еще существует, страница загружена правильно.


2
Но проблема OP в том, что страница загружается правильно, но он все равно получает сообщение об ошибке. Кажется, это ничего не меняет.
Teepeemm
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.