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

115

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

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

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

С уважением

Muleskinner
источник
Это происходит и со мной, но только на моей машине разработчика. Вы когда-нибудь находили объяснение?
Брайан Финкель
Есть ли способ изменить типы 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

biglazypanda
источник