Advertencia de tipo MIME en cromo para imágenes png

115

Acabo de ejecutar mi sitio en Chrome y, sorprendentemente, aparece esta advertencia para cada una de mis imágenes .png:

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

¿Alguien ha visto esto antes?

Saludos

Muleskinner
fuente
Esto también me sucede a mí, pero solo en mi máquina de desarrollo. ¿Encontraste alguna vez una explicación?
BrianFinkel
¿Hay alguna forma de cambiar los tipos MIME en Cassini? Parece ignorar la <staticContent>configuración en la <system.webServer>sección de web.config.
Travis
1
¿Por qué no puedo ser yo el que tenga 78 votos a favor por el mismo problema? siempre es demasiado tarde ....
Scott Selby
2
casi dos años y medio tarde; o)
Muleskinner
Acabo de descubrir que puede mantener presionada la tecla de control y seleccionar Error, Depurar y Advertencia solamente. De esta manera, su registro no está abarrotado de errores de tipo mime mientras está depurando, pero verá todo lo demás. Muy útil.
Abogado del Diablo

Respuestas:

84

Encontré esto mientras ejecutaba una aplicación ASP.NET WebForms usando el servidor de desarrollo ASP.NET.

Sospecho que sucederá algo similar si también usa IIS Express como servidor (VS 2010 SP1).

"Resolví" mi problema localmente editando la configuración del proyecto (en Web) y cambié del servidor de desarrollo ASP.NET a IIS en mi máquina local. Puedo ver que PNG ya se definió correctamente como un tipo de imagen MIME y, de hecho, cuando llegué a mi servidor IIS local, está sirviendo el archivo con el tipo correcto.

Stefan Mohr
fuente
11
Con IIS Express, no hay ninguna advertencia de tipo MIME en las imágenes PNG. Básicamente, es IIS 7.5 estándar en una forma más portátil (y IIS estándar no tiene problemas para servir PNG). Acabo de poner en marcha un nuevo proyecto, confirmé la advertencia en Cassini (el servidor de desarrollo), lo configuré en IIS Express y confirmé que la advertencia desapareció.
patridge
Lo extraño que he encontrado es que he creado una aplicación MVC ASP.NET 4 y funciona bien cargando los archivos png en Cassini. Actualicé una aplicación MVC ASP.NET 1 hasta 4 y encuentro este problema en Cassini con los mismos archivos png. ¿Algunas ideas?
MattB
1
@MattB: sugiero comparar los archivos de configuración (csproj y web.config) entre su nuevo proyecto MVC4 y el actualizado uno al lado del otro en un editor de texto. Mi primera suposición es que hay una referencia de ensamblaje o similar que no se actualizó automáticamente. Si es más complicado que eso, es posible que desee abrir una nueva pregunta e incluir más detalles.
Stefan Mohr
@StefanMohr Gracias por su respuesta, perdón por el retraso en el regreso. Hice una comparación de ambos y no encontré nada que pareciera fuera de lo común. Incluso fui tan lejos como para hacer los cambios necesarios tanto en csproj como en web.configs para hacerlos idénticos al proyecto ASP.Net MVC 4 recién creado, sin tanta suerte. Al final, acabo de crear un nuevo proyecto y porté todo al nuevo proyecto.
MattB
El sitio web está alojado en Azure y aparece este molesto error al empaquetar mi consola.
Shimmy Weitzhandler
4

Esta advertencia le indica que su servidor web no está configurado para enviar los metadatos de tipo MIME correctos para imágenes PNG. Probablemente debería consultar al administrador de su servidor web y pedirle que configure el mapeo MIME correcto

Rowland Shaw
fuente
3
@JimG Si es el administrador de un servidor web, probablemente encuentre la respuesta en el sitio hermano para webmasters
Rowland Shaw
+1 Esta es la respuesta más descriptiva y útil. No tengo idea de por qué se ha votado tanto en contra.
Sir Crispalot
@JimG. Si fuera el administrador, diría qué servidor web está utilizando o preguntará en el sitio webmasters
Rowland Shaw
De acuerdo, la respuesta más útil. No entendí a @JimG. voto negativo.
Anoyz
4

Agregué tipos como este en .htaccess (AddType image / type extensión) es decir

AddType image/png cur
AddType image/svg+xml svg svgz
Waqar Alamgir
fuente
2

Por supuesto, las soluciones anteriores son perfectas. Solo para evitar advertencias y para una consola limpia, hice el siguiente cambio en mi código. (eso también solo para ASP.NET Development Server) Escribí un controlador adicional para esto:

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();
              }
         }
    }
}

Y agregado Http Handler en web.config en system.web

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

La forma más rápida de evitar el correo no deseado que encontré es usar la tecla CTRL para seleccionar Errores, Advertencias y Depurar en lugar de todos.

Todas: ingrese la descripción de la imagen aquí

Errores, advertencias y depuración: ingrese la descripción de la imagen aquí

Abogado del diablo
fuente
0

Resolví este problema habilitando Contenido estático en Panel de control > Programas y características > Activar o desactivar las funciones de Windows > Componentes IIS > Servicios World Wide Web > Funciones HTTP comunes

biglazypanda
fuente