Avertissement de type MIME dans Chrome pour les images png

115

Je viens de lancer mon site dans Chrome et, étonnamment, il affiche cet avertissement pour chacune de mes images .png:

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

Quelqu'un a déjà vu ça?

Cordialement

Muleskinner
la source
Cela se produit pour moi aussi, mais uniquement sur ma machine de développement. Avez-vous déjà trouvé une explication?
BrianFinkel
Existe-t-il un moyen de modifier les types MIME dans Cassini? Il semble ignorer les <staticContent>paramètres de la <system.webServer>section du web.config.
travis
1
pourquoi ne puis-je pas être celui avec 78 votes positifs pour le même problème? toujours trop tard ....
Scott Selby
2
presque 2 ans et demi de retard; o)
Muleskinner
Je viens de découvrir que vous pouvez maintenir la touche de contrôle enfoncée et sélectionner Erreur, Débogage et Avertissement uniquement. De cette façon, votre journal n'est pas encombré d'erreurs de type mime pendant le débogage, mais vous voyez tout le reste. Très utile.
Devil's Advocate

Réponses:

84

J'ai rencontré cela lors de l'exécution d'une application ASP.NET WebForms à l'aide du serveur de développement ASP.NET.

Je soupçonne que quelque chose de similaire se produira si vous utilisez également IIS Express comme serveur (VS 2010 SP1).

J'ai «résolu» mon problème localement en modifiant les paramètres du projet (sous Web) et en passant du serveur de développement ASP.NET à IIS sur ma machine locale. Je peux voir que PNG était déjà défini correctement comme un type d'image MIME et en effet, lorsque je frappe mon serveur IIS local, il sert le fichier avec le type correct.

Stefan Mohr
la source
11
En utilisant IIS Express, il n'y a pas d'avertissement de type MIME sur les images PNG. Il s'agit essentiellement d'IIS 7.5 standard dans une forme plus portable (et IIS standard n'a aucun problème à servir des PNG). Je viens de lancer un nouveau projet, j'ai confirmé l'avertissement dans Cassini (le serveur de développement), je l'ai défini sur IIS Express et j'ai confirmé que l'avertissement avait disparu.
patridge
La chose étrange que j'ai rencontrée est que j'ai créé une application MVC ASP.NET 4 et cela fonctionne bien en chargeant les fichiers png dans Cassini. J'ai mis à niveau une application MVC ASP.NET 1 jusqu'à 4 et je rencontre ce problème dans Cassini avec les mêmes fichiers png. Des idées?
MattB
1
@MattB - Je suggère de comparer les fichiers de configuration (csproj et web.config) entre votre nouveau projet MVC4 et celui mis à niveau côte à côte dans un éditeur de texte. Ma première hypothèse est qu'il existe une référence d'assemblage ou similaire qui n'a pas été automatiquement mise à niveau. Si c'est plus compliqué que cela, vous pouvez ouvrir une nouvelle question et inclure plus de détails.
Stefan Mohr
@StefanMohr Merci pour votre réponse, Désolé pour le retour tardif. J'ai fait une comparaison des deux et je n'ai rien trouvé qui semblait hors de l'ordinaire. Je suis même allé jusqu'à apporter les modifications nécessaires à la fois au csproj et au web.configs pour les rendre identiques au projet ASP.Net MVC 4 nouvellement créé, pas de chance. En fin de compte, je viens de créer un nouveau projet et de tout porter sur le nouveau projet.
MattB
Le site Web est hébergé sur Azure et j'obtiens cette erreur ennuyeuse lors de l'emballage de ma console.
Shimmy Weitzhandler
4

Cet avertissement vous indique que votre serveur Web n'est pas configuré pour envoyer les métadonnées de type MIME correctes pour les images PNG. Vous devriez probablement consulter l'administrateur de votre serveur Web et lui demander de définir le mappage MIME correct

Rowland Shaw
la source
3
@JimG Si vous êtes l'administrateur d'un serveur Web, vous trouverez probablement la réponse sur le site soeur des webmasters
Rowland Shaw
+1 C'est la réponse la plus descriptive et la plus utile. Je ne sais pas pourquoi il a été autant critiqué.
Sir Crispalot
@JimG. Si vous étiez l'administrateur, vous diriez quel serveur Web vous utilisiez ou demanderiez aux webmasters
Rowland Shaw
D'accord, la réponse la plus utile. Je n'ai pas compris @JimG. vote défavorable.
Anoyz
4

J'ai ajouté des types comme celui-ci dans .htaccess (AddType image / type extention) ie

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

Bien entendu, les solutions ci-dessus sont parfaites. Juste pour éviter les avertissements et pour une console propre, j'ai fait suite au changement de mon code. (cela aussi uniquement pour ASP.NET Development Server) J'ai écrit un gestionnaire supplémentaire pour cela:

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

Et ajouté Http Handler dans web.config sous system.web

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

Le moyen le plus rapide de contourner le spam que j'ai trouvé est d'utiliser la touche CTRL pour sélectionner Erreurs, Avertissements et Débogage au lieu de tout.

Tout: entrez la description de l'image ici

Erreurs, avertissements et débogage: entrez la description de l'image ici

L'avocat du diable
la source
0

J'ai résolu ce problème en activant le contenu statique dans le Panneau de configuration > Programmes et fonctionnalités > Activer ou désactiver les fonctionnalités Windows > Composants IIS > Services World Wide Web > Fonctionnalités HTTP courantes

biglazypanda
la source