Ресурс интерпретируется как 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>

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