Avviso di tipo MIME in Chrome per immagini png


115

Ho appena eseguito il mio sito in Chrome e sorprendentemente viene visualizzato questo avviso per ciascuna delle mie immagini .png:

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

Qualcuno l'ha visto prima?

Saluti


Questo accade anche per me, ma solo sulla mia macchina di sviluppo. Hai mai trovato una spiegazione?
BrianFinkel

C'è un modo per cambiare i tipi MIME in Cassini? Sembra ignorare le <staticContent>impostazioni nella <system.webServer>sezione in web.config.
travis

1
perché non posso essere quello con 78 voti positivi per lo stesso problema? sempre troppo tardi ....
Scott Selby

2
quasi 2 anni e mezzo di ritardo; o)
Muleskinner

Ho appena scoperto che puoi tenere premuto il tasto Control e selezionare solo Errore, Debug e Avviso. In questo modo il tuo registro non è ingombro di errori di tipo MIME durante il debug, ma vedi tutto il resto. Molto maneggevole.
Devil's Advocate

Risposte:


84

Ho riscontrato questo problema durante l'esecuzione di un'app WebForm ASP.NET utilizzando ASP.NET Development Server.

Sospetto che qualcosa di simile accadrà se utilizzi anche IIS Express come server (VS 2010 SP1).

Ho "risolto" il mio problema localmente modificando le impostazioni del progetto (sotto Web) e passato da ASP.NET Development Server a IIS sulla mia macchina locale. Posso vedere che PNG è già stato definito correttamente come tipo MIME di immagine e infatti quando raggiungo il mio server IIS locale sta servendo il file con il tipo corretto.


11
Utilizzando IIS Express, non è presente alcun avviso di tipo MIME sulle immagini PNG. È fondamentalmente IIS 7.5 standard in una forma più portabile (e IIS standard non ha problemi a servire PNG). Ho appena avviato un nuovo progetto, confermato l'avviso in Cassini (il server di sviluppo), l'ho impostato su IIS Express e ho confermato che l'avviso è scomparso.
patridge

La cosa strana che ho riscontrato è che ho creato un'applicazione MVC ASP.NET 4 e funziona bene caricando i file png in Cassini. Ho aggiornato un'applicazione MVC ASP.NET 1 fino a 4 e ho riscontrato questo problema in Cassini con gli stessi file png. Qualche idea?
MattB

1
@ MattB - Suggerisco di confrontare i file di configurazione (csproj e web.config) tra il tuo nuovo progetto MVC4 e quello aggiornato fianco a fianco in un editor di testo. La mia prima ipotesi è che ci sia un riferimento all'assembly o simile che non è stato aggiornato automaticamente. Se è più complicato di così, potresti voler aprire una nuova domanda e includere maggiori dettagli.
Stefan Mohr

@StefanMohr Grazie per la tua risposta, ci scusiamo per il ritardo nel ritorno. Ho fatto un confronto di entrambi e non ho incontrato nulla che sembrasse fuori dall'ordinario. Sono persino arrivato al punto di apportare le modifiche necessarie sia a csproj che a web.configs per renderli identici al progetto ASP.Net MVC 4 appena creato, senza fortuna. Alla fine, ho appena creato un nuovo progetto e ho portato tutto nel nuovo progetto.
MattB

Il sito Web è ospitato su Azure e ottengo questo fastidioso errore durante la compressione della console.
Shimmy Weitzhandler

4

Questo avviso ti dice che il tuo server web non è configurato per inviare i metadati di tipo MIME corretti per le immagini PNG. Probabilmente dovresti consultare l'amministratore del tuo server web e chiedergli di impostare la corretta mappatura MIME


3
@JimG Se sei l'amministratore di un server web, probabilmente troverai la risposta sul sito gemello per i webmaster
Rowland Shaw

+1 Questa è la risposta più descrittiva e utile. Non ho idea del perché sia ​​stato svalutato così tanto.
Sir Crispalot

@JimG. Se tu fossi l'amministratore, diresti quale server web stavi utilizzando o chiederesti sul sito per i webmaster
Rowland Shaw

D'accordo, la risposta più utile. Non ho capito @JimG. downvote.
Anoyz

4

Ho aggiunto tipi come questo in .htaccess (AddType image / type extention) ie

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

2

Ovviamente le soluzioni di cui sopra sono perfette. Solo per evitare avvisi e per una console pulita ho fatto a seguito di modifiche nel mio codice. (anche questo solo per ASP.NET Development Server) Ho scritto un gestore aggiuntivo per questo:

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 ha aggiunto Http Handler in web.config sotto system.web

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

0

Il modo più rapido per aggirare lo spam che ho trovato è utilizzare il tasto CTRL per selezionare Errori, Avvisi e Debug invece di tutto.

Tutti: inserisci qui la descrizione dell'immagine

Errori, avvisi e debug: inserisci qui la descrizione dell'immagine


0

Ho risolto questo problema abilitando Contenuto statico in Pannello di controllo > Programmi e funzionalità > Attiva o disattiva le funzionalità di Windows > Componenti IIS > Servizi World Wide Web > Funzionalità HTTP comuni

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.