Ресурс интерпретируется как Script, но передается с типом MIME text/plain - для локального файла
Я получаю "Ресурс, интерпретируемый как Script, но переносимый с помощью MIME-типа текстового/обычного" предупреждения в Google Chrome, когда он содержит локальный файл Script.
Я знаю, что проблема возникает при загрузке файла с сервера или через 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 скриптов. Поэтому это затрудняет просмотр, когда между ними происходит фактическое предупреждение.
Все работает нормально, когда я запускаю файл на сервере, локально или удаленно.
Любые идеи о том, почему хром раздражает меня этим?
Ответы
Ответ 1
Я понял это!
Установщик Visual Studio должен добавить ошибочную строку в реестр.
откройте regedit
и ознакомьтесь с этим разделом реестра:
![enter image description here]()
Посмотрите на этот ключ? Ключ типа содержимого? изменить его значение из текста /plain в текст /javascript.
Наконец, хром может снова дышать.
Я должен отметить, что ни тип контента, ни PercievedType по умолчанию не установлены в Windows 7, поэтому вы можете, вероятно, безопасно удалить их оба, но минимальный размер, который вам нужно сделать, это редактировать.
В любом случае, я надеюсь, что это исправляет и это для вас!
Ответ 2
Я попытался исправить эту проблему, используя этот метод, но это не сработало для меня.
Моя проблема заключалась в том, что диспетчер IIS не имел типов MIME в HTTP-функциях.
Мне удалось включить его, включив Static Context через...
- > Панель управления
- > Программы
- > Включить или отключить функции Windows
- > Информационные службы Интернета
- > Услуги World Wide Web
- > Общие функции HTTP
→ [X] Статическое содержимое.
После этого появились типы MIME, и все снова заработало.
Ответ 3
Принятый ответ - отличный! Однако просто отправьте ответ для тех, кто сталкивается с такими проблемами, как я, которые иногда используют компьютер отдела/колледжа, где у меня нет разрешения на изменение какого-либо ключевого значения в regedit.
Измените
<script type="text/javascript" src="main.js"></script>
to
<script src="main.js"></script>
Хотя сообщение об ошибке все еще существует, страница загружается правильно.