PNG görüntüleri için Chrome'da MIME türü uyarısı


115

Sitemi sadece Chrome'da çalıştırdım ve şaşırtıcı bir şekilde .png resimlerimin her biri için şu uyarıyla geliyor:

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

Bunu daha önce gören oldu mu?

Saygılarımızla


Bu benim için de oluyor, ancak yalnızca geliştirici makinemde. Hiç bir açıklama buldun mu?
BrianFinkel

Cassini'de MIME türlerini değiştirmenin bir yolu var mı? Görünüşe göre web.config bölümündeki <staticContent>ayarlar yok <system.webServer>sayılıyor.
travis

1
neden aynı sorun için 78 olumlu oy alan ben olamıyorum? her zaman çok geç ....
Scott Selby

2
neredeyse 2½ yıl geç; o)
Muleskinner

Kontrol tuşunu basılı tutup yalnızca Hata, Hata Ayıklama ve Uyarı seçeneklerinden birini seçebileceğinizi keşfettim. Bu şekilde günlüğünüz, siz hata ayıklarken mime tipi hatalarla karışık değildir, ancak diğer her şeyi görürsünüz. Çok kullanışlı.
Şeytanın Avukatı

Yanıtlar:


84

ASP.NET Geliştirme Sunucusunu kullanarak bir ASP.NET WebForms uygulamasını çalıştırırken bununla karşılaştım.

Sunucunuz olarak IIS Express kullanırsanız da benzer bir şey olacağından şüpheleniyorum (VS 2010 SP1).

Proje ayarlarını (Web altında) düzenleyerek sorunumu yerel olarak 'çözdüm' ve yerel makinemde ASP.NET Geliştirme Sunucusundan IIS olarak değiştirdim. PNG'nin bir görüntü MIME türü olarak zaten doğru bir şekilde tanımlandığını görebiliyorum ve gerçekten de yerel IIS sunucuma ulaştığımda, dosyayı doğru türde sunuyor.


11
IIS Express kullanıldığında, PNG görüntülerinde MIME türü uyarısı yoktur. Temelde daha taşınabilir bir biçimde standart IIS 7.5'tir (ve standart IIS'nin PNG'leri sunma konusunda hiçbir sorunu yoktur). Yeni bir proje açtım, Cassini'deki (dev sunucusu) uyarıyı onayladım, IIS Express'e ayarladım ve uyarının ortadan kalktığını onayladım.
patridge

Karşılaştığım tuhaf şey, bir MVC ASP.NET 4 uygulaması oluşturmuş olmam ve png dosyalarını Cassini'de yüklerken iyi çalışıyor olması. Bir MVC ASP.NET 1 uygulamasını 4'e yükselttim ve bu sorunla Cassini'de aynı png dosyalarıyla karşılaşıyorum. Herhangi bir fikir?
MattB

1
@MattB - Yapılandırma dosyalarını (csproj ve web.config) yeni MVC4 projeniz ile yükseltilmiş bir metin düzenleyicide yan yana karşılaştırmanızı öneririm. İlk tahminim, otomatik olarak yükseltilmeyen bir montaj referansı veya benzerinin olduğu. Bundan daha karmaşıksa, yeni bir soru açıp daha fazla ayrıntı eklemek isteyebilirsiniz.
Stefan Mohr

@StefanMohr Cevabınız için teşekkürler, geç dönüş için özür dilerim. İkisinin bir karşılaştırmasını yaptım ve sıra dışı görünen hiçbir şeyle karşılaşmadım. Hatta hem csproj hem de web.configs'de yeni oluşturulan ASP.Net MVC 4 projesiyle aynı olacak şekilde gerekli değişiklikleri yapacak kadar ileri gittim, böyle bir şans yok. Sonunda, yeni bir proje yarattım ve her şeyi yeni projeye taşıdım.
MattB

Web sitesi Azure'da barındırılıyor ve konsolumu paketlerken bu can sıkıcı hatayı alıyorum.
Shimmy Weitzhandler

4

Bu uyarı, web sunucunuzun PNG görüntüleri için doğru MIME türü meta verilerini gönderecek şekilde yapılandırılmadığını belirtir. Muhtemelen web sunucunuzun yöneticisine danışmalı ve doğru MIME eşlemesini ayarlamalarını istemelisiniz


3
@JimG Eğer bir web sunucusunun yöneticisi iseniz, cevabı muhtemelen web yöneticilerinin kardeş sitesinde
Rowland Shaw

+1 Bu en açıklayıcı ve faydalı cevaptır. Neden bu kadar olumsuz oy verildiğine dair hiçbir fikrim yok.
Sir Crispalot

@JimG. Yönetici siz olsaydınız, hangi web sunucusunu kullandığınızı söyler veya sitede web yöneticileri
Rowland Shaw

Kabul edildi, en faydalı cevap. @ JimG anlamadım. downvote.
Anoyz

4

.Htaccess'e buna benzer türler ekledim (AddType image / type extention) yani

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

2

Elbette yukarıdaki çözümler mükemmel. Sadece uyarılardan kaçınmak ve temiz bir konsol için kodumdaki değişikliği takiben yaptım. (bu da yalnızca ASP.NET Geliştirme Sunucusu için) Bunun için fazladan bir işleyici yazdım:

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

Ve system.web altına web.config dosyasına Http Handler eklendi

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

0

Bulduğum spam'le ilgili en hızlı yol CTRL tuşunu kullanarak hepsi yerine Hatalar, Uyarılar ve Hata Ayıklama'yı seçmektir.

Herşey: görüntü açıklamasını buraya girin

Hatalar, Uyarılar ve Hata Ayıklama: görüntü açıklamasını buraya girin


0

Bu sorunu , Denetim Masası > Programlar ve Özellikler > Windows özelliklerini aç veya kapat > IIS bileşenleri > World Wide Web Hizmetleri > Genel HTTP Özellikleri'nde Statik İçeriği etkinleştirerek çözdüm.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.