Aviso de tipo MIME no cromo para imagens png


115

Acabei de executar meu site no Chrome e, surpreendentemente, ele vem com este aviso para cada uma das minhas imagens .png:

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

Alguém viu isso antes?

Saudações


Isso acontece comigo também, mas apenas na minha máquina de desenvolvimento. Você já encontrou uma explicação?
BrianFinkel

Existe alguma maneira de alterar os tipos de MIME no Cassini? Parece ignorar as <staticContent>configurações na <system.webServer>seção do web.config.
travis

1
por que não posso ser o único com 78 votos positivos para o mesmo problema? sempre tarde demais ....
Scott Selby

2
quase 2 anos e meio de atraso; o)
Muleskinner

Acabei de descobrir que você pode manter a tecla Control pressionada e selecionar somente Erro, Depurar e Aviso. Dessa forma, seu log não fica entulhado com erros de tipo MIME durante a depuração, mas você vê todo o resto. Muito conveniente.
Advogado do Diabo

Respostas:


84

Eu encontrei isso ao executar um aplicativo ASP.NET WebForms usando o Servidor de Desenvolvimento ASP.NET.

Suspeito que algo semelhante acontecerá se você usar o IIS Express como seu servidor (VS 2010 SP1).

Eu 'resolvi' meu problema localmente editando as configurações do projeto (na Web) e mudei do Servidor de Desenvolvimento ASP.NET para o IIS em minha máquina local. Posso ver que o PNG já foi definido corretamente como um tipo de imagem MIME e, de fato, quando acerto meu servidor IIS local, ele está servindo o arquivo com o tipo correto.


11
Usando o IIS Express, não há nenhum aviso de tipo MIME em imagens PNG. É basicamente o IIS 7.5 padrão em uma forma mais portátil (e o IIS padrão não tem problemas para servir PNGs). Acabei de criar um novo projeto, confirmei o aviso no Cassini (o servidor de desenvolvimento), configurei-o para IIS Express e confirmei que o aviso foi embora.
patridge

A coisa estranha que encontrei é que criei um aplicativo MVC ASP.NET 4 e funciona bem carregando os arquivos png no Cassini. Eu atualizei um aplicativo MVC ASP.NET 1 para 4 e encontro esse problema no Cassini com os mesmos arquivos png. Alguma ideia?
MattB,

1
@MattB - Eu sugiro comparar os arquivos de configuração (csproj e web.config) entre seu novo projeto MVC4 e o atualizado lado a lado em um editor de texto. Meu primeiro palpite é que há uma referência de assembly ou similar que não foi atualizada automaticamente. Se for mais complicado do que isso, você pode abrir uma nova questão e incluir mais detalhes.
Stefan Mohr,

@StefanMohr Obrigado pela sua resposta, Desculpe pelo atraso no retorno. Eu fiz uma comparação de ambos e não encontrei nada que parecesse fora do comum. Cheguei até a fazer as alterações necessárias no csproj e no web.configs para torná-los idênticos ao projeto ASP.Net MVC 4 recém-criado, sem sorte. No final das contas, acabei de criar um novo projeto e portar tudo para o novo projeto.
MattB de

O site está hospedado no Azure e recebo este erro irritante ao empacotar meu console.
Shimmy Weitzhandler

4

Este aviso informa que o seu servidor da web não está configurado para enviar os metadados do tipo MIME correto para imagens PNG. Você provavelmente deve consultar o administrador do seu servidor web e pedir-lhe para definir o mapeamento MIME correto


3
@JimG Se você for o administrador de um servidor web, provavelmente encontrará a resposta no site irmão para webmasters
Rowland Shaw

+1 Esta é a resposta mais descritiva e útil. Não tenho ideia de por que foi rejeitado tanto.
Sir Crispalot

@JimG. Se você fosse o administrador, diria qual servidor da web está usando ou perguntaria no site para webmasters
Rowland Shaw

Concordo, a resposta mais útil. Não entendi @JimG. downvote.
Anoyz

4

Eu adicionei tipos como este em .htaccess (AddType image / type extention) ie

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

2

Claro que as soluções acima são perfeitas. Apenas para evitar avisos e para um console limpo, fiz a seguinte alteração no meu código. (isso também apenas para ASP.NET Development Server) Escrevi um manipulador extra para isso:

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

E adicionado Http Handler em web.config em system.web

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

0

A maneira mais rápida de contornar o spam que encontrei é usar a tecla CTRL para selecionar Erros, Avisos e Depurar em vez de todos.

Tudo: insira a descrição da imagem aqui

Erros, avisos e depuração: insira a descrição da imagem aqui


0

Resolvi esse problema ativando o conteúdo estático em Painel de controle > Programas e recursos > Ativar ou desativar recursos do Windows > Componentes IIS > Serviços da World Wide Web > Recursos HTTP comuns

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.