Попередження типу MIME в хромі для зображення PNG


115

Щойно запустив мій сайт у хромі та надихаючи, він придумує це попередження для кожного мого .png зображення:

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

Хтось бачив це раніше?

З повагою


Це трапляється і для мене, але лише на моїй машині розробки. Ви коли-небудь знаходили пояснення?
БрайанФінкель

Чи можна змінити типи MIME в Кассіні? Схоже, ігноруються <staticContent>налаштування в <system.webServer>розділі в web.config.
травіс

1
чому я не можу бути тим, хто має 78 заявок за ту ж проблему? завжди занадто пізно ....
Скотт Селбі

2
майже на півтора року; o)
Muleskinner

Щойно я виявив, що ви можете утримувати клавішу управління та вибирати лише помилки, налагодження та попередження. Таким чином ваш журнал не захаращений помилками типу 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). Я просто закрутив новий проект, підтвердив попередження в Кассіні (сервер розробників), встановив його на IIS Express і підтвердив, що попередження пройшло.
патрон

Дивна річ, з якою я стикався, - це те, що я створив програму MVC ASP.NET 4, і вона добре працює, завантажуючи файли png у Кассіні. Я оновив додаток MVC ASP.NET 1 до 4, і я зіткнувся з цією проблемою в Кассіні з тими ж файлами png. Будь-які ідеї?
МетБ

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

@StefanMohr Дякую за вашу відповідь, вибачте за пізнє повернення. Я зробив порівняння обох і не натрапив на все, що виглядало незвично. Я навіть зайшов так далеко, щоб внести необхідні зміни і в csproj, і в web.configs, щоб зробити їх ідентичними новоствореному проекту ASP.Net MVC 4, такої удачі немає. Зрештою, я просто створив новий проект і переніс все до нового проекту.
МетБ

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

4

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


3
@JimG Якщо ви адміністратор веб-сервера, ви, ймовірно, знайдете відповідь на веб-сайті сестри для веб-майстрів
Rowland Shaw

+1 Це найбільш описова і корисна відповідь. Поняття не маю, чому це так знищено.
Сер Кріспалот

@JimG. Якщо ви були адміністратором, ви скажете, яким веб-сервером користуєтесь, або запитаєте на сайті веб-майстрів
Rowland Shaw

Погоджена, найкорисніша відповідь. Не зрозумів @JimG. downvote.
Anoyz

4

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

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

2

Звичайно вище рішення ідеальні. Тільки щоб уникнути попереджень і для чистої консолі я зробив наступні зміни в своєму коді. (що теж лише для сервера розробки ASP.NET) Я написав додатковий обробник для цього:

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 Handler в web.config під system.web

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

0

Найшвидший спосіб спаму, який я знайшов, - це використовувати клавішу CTRL для вибору помилок, попереджень та налагодження замість усіх.

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

Помилки, попередження та налагодження: введіть тут опис зображення


0

Я вирішив цю проблему, включивши статичний вміст на панелі керування > Програми та функції > Увімкнення та вимкнення функцій Windows > компоненти IIS > Всесвітні веб-сервіси > загальні функції HTTP

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.