@ Font-face neden woff dosyalarına 404 hatası veriyor?


422

Ben kullanıyorum @font-faceşirketimin sitesinde ve büyük / görünüyor çalışır. Firefox ve Chrome dışında .woffdosyaya 404 hatası atacak . IE hatayı atmaz. Ben kökleri bulunan yazı tipleri var ama css klasöründeki yazı tipleri ile denedim ve hatta yazı tipi için tüm url veren. Bu yazı tiplerini css dosyamdan kaldırırsam bir 404 almıyorum, bu yüzden sözdizimi hatası olmadığını biliyorum.

Ayrıca, @font-faceyazı tipleri ve kod oluşturmak için fontsquirrels aracını kullandım :

@font-face {
  font-family: 'LaurenCBrownRegular';
  src: url('/laurencb-webfont.eot');
  src: local('☺'), 
    url('/laurencb-webfont.woff') format('woff'), 
    url('/laurencb-webfont.ttf') format('truetype'), 
    url('/laurencb-webfont.svg#webfontaaFhOfws') format('svg');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'FontinSansRegular';
  src: url('/fontin_sans_r_45b-webfont.eot');
  src: local('☺'), 
    url('/fontin_sans_r_45b-webfont.woff') format('woff'), 
    url('/fontin_sans_r_45b-webfont.ttf') format('truetype'), 
    url('/fontin_sans_r_45b-webfont.svg#webfontKJHTwWCi') format('svg');
  font-weight: normal;
  font-style: normal;
}

firefox ve chrome için hangi sürüme sahipsiniz? Gecko 1.9.2 (Firefox 3.6), WOFF için destek ekler.
Sotiris

OTF'ye Woff'a tekrar dönüştürmeyi deneyin. Benzer bir sorun vardı ve dosya ayrıştırma bozuk. Bu, farklı yazı tiplerine dönüştürmek için iyi bir sitedir. onlinefontconverter.com
stacksonstacksonstacks

Yanıtlar:


722

Aynı belirtiyi - 404'ü Chrome'daki woff dosyalarında - deneyimliyordum ve IIS 6 yüklü bir Windows Server'da bir uygulama çalıştırıyordum.

Aynı durumdaysanız, aşağıdakileri yaparak düzeltebilirsiniz:

Çözüm 1

"IIS Yöneticisi (web sitesi özelliklerinin HTTP Üstbilgileri sekmesi) aracılığıyla aşağıdaki MIME türü bildirimlerini eklemeniz yeterlidir: .woff application / x-woff "

Güncelleme: Woff fontları ve Grsmto için MIME Tiplerine göre asıl MIME tipi application / x-font-woff'dur (en azından Chrome için). x-woff, Chrome 404'leri ve x-font-woff, Chrome uyarılarını düzeltir.

2017 itibariyle : woff yazı şimdi bir parçası olarak standardize edilmiş RFC8081 şartname mim tipine font/woffve font/woff2.

IIS 6 MIME Türleri

Seb Duggan'a teşekkürler: http://sebduggan.com/posts/serving-web-fonts-from-iis

Çözüm 2

MIME türlerini web yapılandırmasına da ekleyebilirsiniz :

  <system.webServer>
    <staticContent>
      <remove fileExtension=".woff" /> <!-- In case IIS already has this mime type -->
      <mimeMap fileExtension=".woff" mimeType="font/woff" />
    </staticContent>    
  </system.webServer>

5
Cannot add duplicate collection entry of type ‘mimeMap’ with unique key attribute ‘fileExtension’...Applicationhost.config dosyasında bir çakışma nedeniyle bir hata alabileceğinizi unutmayın . <remove fileExtension=".woff" />Yanlış kopyayı kaldırmak için web.config dosyanızda yeni mimeMap'i belirtmeden hemen önce ekleyerek bunu düzeltebilirsiniz .
Pete

11
MIME türü olarak standartlaştırılmıştır application/font-woff.
Fernando Correia

5
Bu hile yaptı! Aynı sorununuz varsa ancak .woff2 dosyasıyla bu uzantıya başka bir MIME türü (veya yapılandırma) ekleyin
mapache

2
Görünüşe göre şartname değişti (tekrar). İçin tavsiyeniz application/x-font-woffartık güncel değil, RFC 8081'den itibaren doğru mime tipi şimdi font/woffve font/woff2. Bağlantılı sorunuzda güncellenen cevabı görün
Liam

3
Bu çözüm benim için işe yaramadı. Benim için hile neydi: hotcakescommerce.zendesk.com/hc/en-us/articles/…
Kim Lage

53

Bu yazının yanıtı çok yardımcı oldu ve büyük bir zaman tasarrufu. Bununla birlikte, kullanırken FontAwesome 4.50, woff2aşağıda gösterildiği gibi uzantı türü için ek bir yapılandırma eklemek zorunda kaldım, diğer tür istekleri woff2Chrome'un Geliştirici Araçları'nda Konsol> Hatalar altında bir 404 hatası veriyor.

S.Serp'in açıklamasına göre, aşağıdaki yapılandırma <system.webServer>etiketin içine konulmalıdır .

<staticContent>
  <remove fileExtension=".woff" />
  <!-- In case IIS already has this mime type -->
  <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
  <remove fileExtension=".woff2" />
  <!-- In case IIS already has this mime type -->
  <mimeMap fileExtension=".woff2" mimeType="application/x-font-woff2" />
</staticContent>

3
ve söz konusu etiketiniz <staticContent>bir <system.webServer>etiket içinde olmalıdır
S.Serpooshan

Windows Server 2012 R2, ASP.Net MVC5'ten raporlama, mükemmel çalışıyor.
Cromwell

44

Aslında @Ian Robinson cevabı iyi çalışıyor ancak Chrome şu mesajla şikayet etmeye devam edecek: " Kaynak Yazı Tipi olarak yorumlandı ancak MIME türü uygulama / x-woff ile aktarıldı "

Bunu alırsanız,

uygulama / x-woff

için

uygulama / x -font -woff

ve artık Chrome konsol hatalarınız olmayacak!

(Chrome 17'de test edildi)


Bunu nerede değiştiriyorsun? Tarayıcıda mı, sunucuda mı?
Jake Wilson

Yukarıdaki cevapta açıklandığı gibi, sunucu o olmalıdır. Bu çözüm, IIS 6
yüklü

1
chrome hala x-font-woff ile şikayet ediyor
Sonic Soul

Tekrarlamak için yorumumu : şartname gibi görünüyor değişti (tekrar). İçin tavsiyeniz application/x-font-woffartık güncel değil, RFC 8081'den itibaren doğru mime tipi şimdi font/woffve font/woff2. Bağlantılı sorunuzda güncellenen yanıtı görün
Liam

15

IIS7 için çözüm

Ben de aynı sorunla karşılaştım. Tüm web siteleri için geçerli olduğundan, bu yapılandırmayı sunucu düzeyinde yapmak daha iyi olacağını düşünüyorum.

  1. IIS kök düğümüne gidin ve "MIME Türleri" yapılandırma seçeneğini çift tıklatın

  2. Sağ üstteki İşlemler panelinde "Ekle" bağlantısını tıklayın.

  3. Bu bir diyalog getirecektir. .Woff dosya uzantısı ekleyin ve karşılık gelen MIME türü olarak "application / x-font-woff" seçeneğini belirtin.

.Woff dosya adı uzantısı için MIME Türü ekleyin

MIME Türlerine Git

MIME Türü Ekle

IIS 7'de sorunu çözmek için yaptığım şey


2
Not o bağlantı sadece cevaplar tavsiye edilmez , SO cevaplar çözüm (vs. henüz zamanla bayat almak eğilimindedir referanslar, başka mola) için bir aramanın son nokta olmalıdır. Lütfen bağlantıyı referans olarak tutarak bağımsız bir özet eklemeyi düşünün.
Kleopatra

@kleopatra - Cevabı ayrıntılarla güncelledi ve bağlantıyı kaldırdı.
Dhanuka777

"Tüm web siteleri için geçerli olduğundan bu yapılandırmayı sunucu düzeyinde yapmak daha iyi olacağını düşünüyorum." - bu gerçekten değişiyor. Muhtemelen birkaç dahili uygulama çalıştıran bir şirket sunucusuyla uğraşıyorsanız, evet, haklısınız. Öte yandan, birkaç sunucuya dağıtılan halka açık bir web sitesi çalıştırırsanız, web.config yöntemi "tutarlılık" açısından kazanır (yani orada olacak, bir web sitesinde yapılandırmayı unutamazsınız) sunucu).
Balázs

10

Ian'ın cevabına ek olarak, istek filtreleme modülündeki yazı tipi uzantılarının çalışmasını sağlamak zorunda kaldım.

<system.webServer>
  <staticContent>
    <remove fileExtension=".woff" />
    <remove fileExtension=".woff2" />
    <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
    <mimeMap fileExtension=".woff2" mimeType="application/x-font-woff" />
  </staticContent>
  <security>
      <requestFiltering>
          <fileExtensions>
              <add fileExtension=".woff" allowed="true" />
              <add fileExtension=".ttf" allowed="true" />
              <add fileExtension=".woff2" allowed="true" />
          </fileExtensions>
      </requestFiltering>
  </security>    
</system.webServer>

8

IIS Sunucu Yöneticisi'ni çalıştırın (run command: inetmgr) Mime Tiplerini açın ve aşağıdakileri ekleyin

Dosya adı uzantısı: .woff

MIME türü : uygulama / sekizli akış


1

İzinler, MIME türleri, vb etrafında bir sürü şey denedim, ancak benim için web.config IIS'de Statik dosya işleyicisi kaldırmış ve daha sonra açıkça statik dosyaları olan dizinler için eklenmiş olduğu ortaya çıktı. Dizini için bir konum düğümü ekler ve işleyiciyi geri ekler eklemez, istekler 404'leri almayı durdurdu.


1

IIS7 altında CodeIgniter kullanıyorsanız:

Web.config dosyasında eklemek woff için desen

<rule name="Rewrite CI Index">
  <match url=".*" />
    <conditions>
      <add input="{REQUEST_FILENAME}" pattern="css|js|jpg|jpeg|png|gif|ico|htm|html|woff" negate="true" />
    </conditions>
    <action type="Rewrite" url="index.php/{R:0}" />
 </rule>

Umarım yardımcı olur !


0

Bu açık olabilir, ancak beni 404'lerle birkaç kez kapattı ... Yazı tipi klasörü izinlerinin doğru ayarlandığından emin olun.


0

Ayrıca URL yazıcınızı kontrol edin. "Tuhaf" bir şey bulunursa 404 fırlatabilir.


0

Web sunucusu yapılandırmanıza erişiminiz yoksa, font dosyasını svg ile bitecek şekilde yeniden adlandırın (ancak biçimi koruyun). Chrome ve Firefox'ta benim için iyi çalışıyor.


0

MIME türleri ekledikten sonra hala çalışmıyorsa, lütfen sitedeki Kimlik Doğrulama bölümünde "Anonim Kimlik Doğrulama" nın etkin olup olmadığını kontrol edin ve verilen ekran görüntüsüne göre "Uygulama havuzu kimliği" ni seçtiğinizden emin olun.

resim açıklamasını buraya girin


-1

IIS Mime Türü: .woff yazı tipi / x-woff (uygulama / x-woff veya uygulama / x-yazı tipi-woff değil)


1
Lütfen cevabınızı uzatabilir ve sorunun nasıl çözüldüğü hakkında ayrıntılı bilgi verebilir misiniz?
talex


-1

Çözüldü:

Mo'Bulletproofer yöntemini kullanmak zorunda kaldım


Bu, artık WOFF kullanmadığınız anlamına mı geliyor? Web sunucunuz WOFF dosyalarını sunmak için düzgün yapılandırılmamış olabilir mi? Örneğin, şunu görün: stackoverflow.com/questions/3594823/mime-type-for-woff-fonts/…
mercator

Yazı tipini diğer makinelerle kodlama ile test ettim. İyi görünüyor ve 404 hatası yok.
dcp3450

Bana izin vermeyecek. Kodlama çok uzun bir yol. Burada açıklanmıştır: paulirish.com/2010/font-face-gotchas
dcp3450

1
Yanıttaki bağlantı artık mevcut değil.
Munim Munna
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.