MIME-Typwarnung in Chrome für PNG-Bilder


115

Ich habe gerade meine Website in Chrom ausgeführt und überraschenderweise wird diese Warnung für jedes meiner PNG-Bilder angezeigt:

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

Hat das schon mal jemand gesehen?

Grüße


Dies passiert auch für mich, aber nur auf meiner Entwicklungsmaschine. Hast du jemals eine Erklärung gefunden?
BrianFinkel

Gibt es eine Möglichkeit, die MIME-Typen in Cassini zu ändern? Es scheint die <staticContent>Einstellungen im <system.webServer>Abschnitt in der web.config zu ignorieren .
Travis

1
Warum kann ich nicht derjenige mit 78 Upvotes für das gleiche Problem sein? immer zu spät ....
Scott Selby

2
fast 2½ Jahre zu spät; o)
Muleskinner

Ich habe gerade festgestellt, dass Sie die Steuertaste gedrückt halten und nur Fehler, Debuggen und Warnung auswählen können. Auf diese Weise wird Ihr Protokoll beim Debuggen nicht mit MIME-Fehlern überfüllt, sondern Sie sehen alles andere. Sehr praktisch.
Devil's Advocate

Antworten:


84

Dies ist mir beim Ausführen einer ASP.NET WebForms-App mit dem ASP.NET Development Server begegnet.

Ich vermute, dass etwas Ähnliches passieren wird, wenn Sie IIS Express auch als Server verwenden (VS 2010 SP1).

Ich habe mein Problem lokal durch Bearbeiten der Projekteinstellungen (unter Web) behoben und auf meinem lokalen Computer vom ASP.NET Development Server zu IIS geändert. Ich kann sehen, dass PNG bereits korrekt als Image-MIME-Typ definiert wurde. Wenn ich auf meinen lokalen IIS-Server stoße, wird die Datei mit dem richtigen Typ bereitgestellt.


11
Bei Verwendung von IIS Express gibt es bei PNG-Bildern keine Warnung vom Typ MIME. Es handelt sich im Grunde genommen um Standard-IIS ​​7.5 in einer portableren Form (und Standard-IIS ​​hat keine Probleme, PNGs bereitzustellen). Ich habe gerade ein neues Projekt gestartet, die Warnung in Cassini (dem Entwickler-Server) bestätigt, auf IIS Express gesetzt und bestätigt, dass die Warnung verschwunden ist.
Patridge

Das Seltsame, auf das ich gestoßen bin, ist, dass ich eine MVC ASP.NET 4-Anwendung erstellt habe und das Laden der PNG-Dateien in Cassini problemlos funktioniert. Ich habe eine MVC ASP.NET 1-Anwendung auf 4 aktualisiert und stoße auf dieses Problem in Cassini mit denselben PNG-Dateien. Irgendwelche Ideen?
MattB

1
@MattB - Ich empfehle, die Konfigurationsdateien (csproj und web.config) zwischen Ihrem neuen MVC4-Projekt und dem aktualisierten nebeneinander in einem Texteditor zu vergleichen. Meine erste Vermutung ist, dass es eine Baugruppenreferenz oder ähnliches gibt, die nicht automatisch aktualisiert wurde. Wenn es komplizierter ist, möchten Sie möglicherweise eine neue Frage öffnen und weitere Details hinzufügen.
Stefan Mohr

@StefanMohr Vielen Dank für Ihre Antwort. Entschuldigen Sie die verspätete Rückkehr. Ich habe beide verglichen und bin auf nichts gestoßen, was ungewöhnlich aussah. Ich ging sogar so weit, die notwendigen Änderungen sowohl an csproj als auch an web.configs vorzunehmen, um sie mit dem neu erstellten ASP.Net MVC 4-Projekt identisch zu machen, kein Glück. Letztendlich habe ich gerade ein neues Projekt erstellt und alles auf das neue Projekt portiert.
MattB

Die Website wird auf Azure gehostet und ich bekomme diesen nervigen Fehler beim Packen meiner Konsole.
Shimmy Weitzhandler

4

Diese Warnung weist Sie darauf hin, dass Ihr Webserver nicht zum Senden der richtigen Metadaten vom Typ MIME für PNG-Bilder konfiguriert ist. Sie sollten sich wahrscheinlich an den Administrator Ihres Webservers wenden und ihn bitten, die richtige MIME-Zuordnung festzulegen


3
@ JimG Wenn Sie der Administrator eines Webservers sind, finden Sie die Antwort wahrscheinlich auf der Schwesterseite für Webmaster
Rowland Shaw

+1 Dies ist die aussagekräftigste und nützlichste Antwort. Keine Ahnung, warum es so sehr herabgestuft wurde.
Sir Crispalot

@ JimG. Wenn Sie der Administrator wären, würden Sie sagen, welchen Webserver Sie verwendet haben, oder auf der Website nach Webmastern
Rowland Shaw

Einverstanden, die nützlichste Antwort. Ich habe @JimG nicht verstanden. abstimmen.
Anoyz

4

Ich habe solche Typen in .htaccess (AddType-Bild / Typerweiterung) hinzugefügt, d. H.

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

2

Natürlich sind die oben genannten Lösungen perfekt. Nur um Warnungen zu vermeiden und für eine saubere Konsole habe ich nach Änderung in meinem Code getan. (das auch nur für ASP.NET Development Server) Ich habe einen zusätzlichen Handler dafür geschrieben:

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

Und Http Handler in web.config unter system.web hinzugefügt

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

0

Der schnellste Weg, um den gefundenen Spam zu umgehen, besteht darin, mit der STRG-Taste Fehler, Warnungen und Debugging anstelle von allen auszuwählen.

Alles: Geben Sie hier die Bildbeschreibung ein

Fehler, Warnungen und Debugging: Geben Sie hier die Bildbeschreibung ein


0

Ich habe dieses Problem gelöst, indem ich statischen Inhalt in der Systemsteuerung > Programme und Funktionen > Windows-Funktionen aktivieren oder deaktivieren > IIS-Komponenten > World Wide Web Services > Allgemeine HTTP-Funktionen aktiviert habe

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.