IIS Express için web.config dosyasına MIME eşlemesi ekleme


178

IIS Express'e .woff dosya uzantıları için yeni bir MIME eşlemesi eklemem gerekiyor.

Aşağıdaki snippet'i IIS Express'in "applicationhost.config" dosyasına eklersem düzgün çalışır:

<staticContent lockAttributes="isDocFooterFileName">
    <mimeMap fileExtension=".woff" mimeType="font/x-woff" />
    ...

Ama aslında bunu "web.config" dosyasına eklemek istiyorum, böylece her geliştiricinin kendi "applicationhost.config" dosyasını yerel olarak değiştirmesi gerekmez.

Bu yüzden tekrar "applicationhost.config" dosyasından kaldırdım ve projenin "web.config" dosyasına aşağıdaki snippet'i ekledim:

<system.webServer>
  ...
  <staticContent>
    <mimeMap fileExtension=".woff" mimeType="font/x-woff" />
  </staticContent>
</system.webServer>

Ne yazık ki bu şekilde çalışmıyor gibi görünüyor çünkü bir .woff dosyasına erişmeye çalıştığımda bir HTTP 404.3 hatasıyla sonuçlanıyorum.

Neyi yanlış yapıyorum?

Yanıtlar:


309

"Web.config" içine koymak iyi çalışıyor. Sorun, MIME türünü yanlış anlamamdı. Bunun yerine font/x-woffveya font/x-font-woffşöyle olmalıdır application/font-woff:

<system.webServer>
  ...
  <staticContent>
    <remove fileExtension=".woff" />
    <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
  </staticContent>
</system.webServer>

MIME türü ile ilgili bu yanıta da bakınız: https://stackoverflow.com/a/5142316/135441

4/10/2013 Güncellemesi

Spesifikasyon artık bir öneri ve MIME türü resmi olarak: application/font-woff



5
Bağlantıya göre, güncellenen mime türü şu şekilde olmalıdır: application / font-woff (kullanımdan kaldırılmış uygulama / x-font-woff yerine).
longda

1
@longda Bu ipucu için teşekkürler! Cevabı yansıtacak şekilde güncelledim.
Martin Buberl

Web.config dosyasındaki özel MIME türlerini tanımlama yöntemi yalnızca IIS Express'te çalışır mı? IIS 6'ya dağıtılmış bir web.config içinde denedim ve çalışmıyor (404 atar). IIS Yöneticisi Konsolu aracılığıyla MIME türünü eklersem çalışır.
Walter Stabosz

@WalterStabosz Yukarıda IIS ve IIS Express 7+ için çalışır. IIS 6'daysanız, sunucuda mime türlerini yapılandırmanız gerekir, bkz . IIS 6'da mime türlerini yapılandırma .
Martin Buberl

59

Birisi bunu Hata: gibi benzersiz hata özniteliğine sahip 'mimeMap' türünde yinelenen koleksiyon girdisi ekleyemezse ve / veya diğer komut dosyaları bu düzeltmeyi yaparken çalışmayı durdurursa, öncelikle aşağıdaki gibi kaldırmaya yardımcı olabilir:

<staticContent>
  <remove fileExtension=".woff" />
  <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
</staticContent>

En azından bu sorunumu çözdü


1
Teşekkürler, dağıtırken biraz güvenlik katıyor :)
rdmptn

3
Bunu IIS hakkında sevdiğim özellikler listeme ekleyin.
QueueHammer

1
Sunucu zaten bir mime türü içeriyorsa, bunu web.config dosyasında belirtmek muhtemelen yinelenen özel duruma neden olur.
Muffin Man

19
<system.webServer>
     <staticContent>
      <remove fileExtension=".woff"/>
      <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
      <mimeMap fileExtension=".woff2" mimeType="font/woff2" />
    </staticContent>
  </system.webServer>

6

Bunun eski bir soru olduğunu biliyorum, ama ...

IISExpress örneğimin woff dosyalarını sunmadığını fark ettim, bu yüzden aramıyordum (bunu buldum) ve sonra buldum:

http://www.tomasmcguinness.com/2011/07/06/adding-support-for-svg-to-iis-express/

Sanırım bu konuda sorun yaşamadığım için kurulumumda SVG desteği var. Ancak talimatlar woff için önemsiz bir şekilde değiştirilebilir:

  • Yönetici ayrıcalıklarına sahip bir konsol uygulaması açın.
  • IIS Express dizinine gidin. Bu Program Dosyaları veya Program Dosyaları (x86) altında yaşıyor
  • Komutu çalıştırın:

    appcmd set config / section: staticContent / + [fileExtension = 'woff', mimeType = 'uygulama / x-woff']

Sorunumu çözdü ve bazı crummy config ile uğraşmak zorunda kalmadım (gibi PUTve DELETEfiiller için destek eklemek zorunda kaldım gibi ). Yaşasın!


4

Bu gönderi için teşekkürler. Asp.net mvc projemde bıyık şablonlarını kullanmak için çalıştım Aşağıdaki kullandım ve benim için çalıştı.

<system.webServer>   
  <staticContent>
   <mimeMap fileExtension=".mustache" mimeType="text/html"/>
  </staticContent>
</system.WebServer>

3

IIS Express kullanmıyorum, ancak Yerel Tam IIS 7'ye karşı geliştiriyorum.

Bu yüzden başka biri buraya yapmaya çalışıyorsa, IIS Yöneticisi aracılığıyla woff için mime türünü eklemek zorunda kaldım

Mime Tipleri >> Sağdaki Bağlantı ekle'yi tıklayın ve ardından Uzantı: .woff girin MIME tipi: uygulama / font-woff


Teşekkürler, bu bir projenin tekrar yürütülmesini hızlandırdı. Benimle IIS7.5 ile işler iyiydi, ama Win8 ve IIS8 aldım ve sitenin web.config dosyasındaki eşlemeler IIS yapılandırmasıyla çoğaltılıyordu ve bu da istenen herhangi bir statik kaynak için hatalara neden oluyordu. Kopyaları kaldırdım ve işler iyi gidiyor.
rdmptn

3

Sorunu çözmek için, sol panelde IIS kök düğümü seçiliyken "MIME Türleri" yapılandırma seçeneğini çift tıklatın ve sağdaki Eylemler panelinde "Ekle ..." bağlantısını tıklatın. Bu, aşağıdaki iletişim kutusunu getirir. .Woff dosya uzantısı ekleyin ve karşılık gelen MIME türü olarak "application / x-font-woff" değerini belirtin:

resim açıklamasını buraya girin

Uygulama / x-font-woff2 ile woff2 için de aynı işlemi uygulayın


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.