Предупреждение типа MIME в Chrome для изображений PNG


115

Я только что запустил свой сайт в хроме и, к удивлению, выдает это предупреждение для каждого из моих изображений .png:

Resource interpreted as image but transferred with MIME type application/octet-stream.

Кто-нибудь видел это раньше?

С уважением


Это происходит и со мной, но только на моей машине разработчика. Вы когда-нибудь находили объяснение?
Брайан Финкель

Есть ли способ изменить типы MIME в Cassini? Вроде игнорирует <staticContent>настройки в <system.webServer>разделе в web.config.
Travis

1
Почему я не могу набрать 78 голосов за ту же проблему? всегда слишком поздно ....
Скотт Селби

2
опоздал почти на
два с

Я только что обнаружил, что вы можете удерживать нажатой клавишу управления и выбирать только «Ошибка», «Отладка» и «Предупреждение». Таким образом, ваш журнал не будет загроможден ошибками типа MIME во время отладки, но вы увидите все остальное. Очень кстати.
Адвокат дьявола

Ответы:


84

Я столкнулся с этим при запуске приложения ASP.NET WebForms с помощью сервера разработки ASP.NET.

Я подозреваю, что нечто подобное произойдет, если вы также будете использовать IIS Express в качестве сервера (VS 2010 SP1).

Я «решил» свою проблему локально, отредактировав настройки проекта (в Интернете) и перейдя с сервера разработки ASP.NET на IIS на моем локальном компьютере. Я вижу, что PNG уже был правильно определен как тип MIME изображения, и действительно, когда я нажимаю на свой локальный сервер IIS, он обслуживает файл с правильным типом.


11
При использовании IIS Express для изображений PNG отсутствует предупреждение о типе MIME. В основном это стандартный IIS 7.5 в более переносимой форме (и стандартный IIS без проблем обслуживает PNG). Я только что запустил новый проект, подтвердил предупреждение в Cassini (сервер разработки), установил его на IIS Express и подтвердил, что предупреждение исчезло.
Патридж

Странная вещь, с которой я столкнулся, заключается в том, что я создал приложение MVC ASP.NET 4, и оно отлично работает, загружая файлы png в Cassini. Я обновил приложение MVC ASP.NET 1 до 4 и столкнулся с этой проблемой в Cassini с теми же файлами png. Любые идеи?
MattB 03

1
@MattB - я предлагаю сравнить файлы конфигурации (csproj и web.config) между вашим новым проектом MVC4 и обновленным параллельно в текстовом редакторе. Мое первое предположение - это ссылка на сборку или что-то подобное, которое не было обновлено автоматически. Если это сложнее, вы можете открыть новый вопрос и включить в него более подробную информацию.
Стефан Мор

@StefanMohr Спасибо за ваш ответ, извините за позднее возвращение. Я провел сравнение обоих и не нашел ничего необычного. Я даже зашел так далеко, что внес необходимые изменения как в csproj, так и в web.configs, чтобы сделать их идентичными недавно созданному проекту ASP.Net MVC 4, безуспешно. В конечном итоге я просто создал новый проект и перенес все в новый проект.
MattB

Веб-сайт размещен в Azure, и я получаю эту досадную ошибку, упаковывая консоль.
Shimmy Weitzhandler

4

Это предупреждение сообщает вам, что ваш веб-сервер не настроен для отправки правильных метаданных типа MIME для изображений PNG. Вероятно, вам следует проконсультироваться с администратором вашего веб-сервера и попросить его установить правильное сопоставление MIME.


3
@JimG Если вы являетесь администратором веб-сервера, вы, вероятно, найдете ответ на родственном сайте для веб-мастеров
Роуленд Шоу

+1 Это наиболее информативный и полезный ответ. Понятия не имею, почему его так сильно отвергли.
Sir Crispalot 02

@JimG. Если бы вы были администратором, вы бы сказали, какой веб-сервер вы используете, или спросили бы на сайте для веб-мастеров
Роуленд Шоу

Согласен, самый полезный ответ. Не понял @JimG. downvote.
Anoyz

4

Я добавил такие типы в .htaccess (расширение изображения / типа AddType), т.е.

AddType image/png cur
AddType image/svg+xml svg svgz

2

Конечно, вышеперечисленные решения идеальны. Чтобы избежать предупреждений и для чистой консоли, я внес следующие изменения в свой код. (это тоже только для ASP.NET Development Server) Я написал для этого дополнительный обработчик:

PNGHandler.cs

class PNGHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    { 
       if(context.Request.HttpMethod == "GET") 
       {
             string requestedFile = context.Server.MapPath(context.Request.FilePath);
             FileInfo fileinfo = new FileInfo(requestedFile);
             string contentType = "";
             if (fileinfo.Exists && fileinfo.Extension.Remove(0, 1).ToUpper() == "PNG")
             {
                   contentType = "image/png";
                   context.Response.ContentType = contentType;
                   context.Response.TransmitFile(requestedFile);
                   context.Response.End();
              }
         }
    }
}

И добавил обработчик Http в web.config в system.web

<system.web>
 <httpHandlers>
 <add path="*.png" verb="*" type="PNGHandler" />
 </httpHandlers>
</system.web>

0

Самый быстрый способ обойти спам, который я обнаружил, - это использовать клавишу CTRL, чтобы выбрать вместо всех «Ошибки», «Предупреждения» и «Отладка».

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

Ошибки, предупреждения и отладка: введите описание изображения здесь


0

Я решил эту проблему, позволяя Статическое содержимое в панели управления > Программы и компоненты > Turn Windows , или отключение компонентов > IIS компонентов > World Wide Web Services > Общие функции HTTP

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.