Yazı Tipi Yüzü IIS 8.0'da çalışmıyor


118

Font Squirrel'dan oluşturulan programımda bir font-face var IIS'de çalışmasını sağlayamıyorum, localhost'ta çalışıyor. Eklediğim uygulama / font-woff makalesine benim MIME Türleri ama yine de işe istemiyor.

Context
--Fonts
----font location
--css files

CSS

@font-face {
    font-family: 'wallStreetFont';
    src: url('Fonts/subway-webfont.eot');
    src: url('Fonts/subway-webfont.eot?#iefix') format('embedded-opentype'),
         url('Fonts/subway-webfont.woff2') format('woff2'),
         url('Fonts/subway-webfont.woff') format('woff'),
         url('Fonts/subway-webfont.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

GÜNCEL MIME DÜZENLE

Varsayılan IIS 8 MIME yazı tipini / x-woff kullanıyorum


Nasıl çağırıyorsun? Font Squirrel zip dosyasında örnek çıktıyı denediniz mi?
Aibrean

IIS 8 kullanıyorsanız, WOFF için web yapılandırmanıza bir mime türü eklemeniz gerekmez. Aslında bir kopyası olması daha muhtemel bir hata olacaktır.
Colin Bacon

@Aibrean evet örnek çıktı çalışıyor
katılma

@ColinBacon Bunu gönderdikten sonra okudum. Bu yüzden, güncel olarak font / x-woff'a sahibim, bu IIS 8.0'dan devralındı. Ancak doğru yazı tipini alma konusunda hala şans yok
2014

Yanıtlar:


259

WOFF2'nin Font Squirrel yazı tiplerine dahil olduğunu görmek harika! IIS 8 bir mime türüne ihtiyaç duymazken, WOFFbunun için buna ihtiyaç duyacaktır WOFF2. W3C şunları önerir :

application/font-woff2

Daha fazla bilgi için burayaWOFF2 bakın .

Mime türünü IIS'ye eklemek için Web.Configaşağıdaki gibi değiştirin :

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <!-- ... -->
  <system.webServer>
    <!-- ... -->
    <staticContent>
      <!-- ... -->
      <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
    </staticContent>
    <!-- ... -->
  </system.webServer>

2
Ben eklendi woff2ama hala hiçbir şey
joetinger

4
Geliştirme araçlarınıza bakarsanız. Yazı tipi dosyasını almaya çalıştığında 404 alıyor musunuz? Yolun doğru olduğunu ve tarayıcınızda ona göz atma izninizin olduğunu kontrol edin.
Colin Bacon

Evet öyle http://192.168.72.196:85/bundles/Fonts/subway-webfont.woff2, paketler klasörünü nereden aldıklarından emin değilim. Herhangi bir fikir?
katılımcı

4
ASP.NET paketlemeyi ve küçültmeyi kullandığınızı varsayıyorum. Bunu paket yapılandırmanızda ayarlarsanız BundleTable.EnableOptimizations = true. Yerel ana makineniz, üretim sunucunuzdakiyle aynı şekilde davranmalıdır.
Colin Bacon

1
Şimdi çalıştığı tüm yardımlar için teşekkürler. Bu, woff2paketimde yazım hatası olarak sonuçlanan ve 404 hatasının bir kombinasyonuydu . Teşekkür ederim!
katılımcı

79

Woff ve woff2 yazı tiplerinin IIS'de düzgün çalışmasını sağlamak için Web.Config dosyasına aşağıdaki MIME türlerini eklemelisiniz.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>  
  <system.webServer>    
    <staticContent>
        <remove fileExtension=".woff" />
        <remove fileExtension=".woff2" />
        <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
        <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
    </staticContent>

Google Chrome'da hala 404 hatasıyla karşılaşıyorsanız, sayfayı yeniden yüklemeden önce tarayıcınızın önbelleğini temizlemelisiniz.


2
Spesifikasyon artık woff'un application / font-woff olması için mimeType'ı önermektedir .
Steven

2
Sadece bir .woff2 404 sorunu alıyordum ve bu benim için çalıştı. Sadece woff2 ile ilgili satırları kullandım
Francisc0

26

MIME türlerini IIS Yöneticisi'nde yapılandırmanın da mümkün olduğunu unutmayın. Sadece web sitesini seçin ve ardından ana bölmede IIS altındaki MIME Türleri simgesine çift tıklayın.

görüntü açıklamasını buraya girin

Daha sonra mevcut tüm MIME Türlerinin bir listesini görmeli ve sağ bölmedeki Ekle ... bağlantısını kullanarak yenilerini ekleyebilmelisiniz.


2
neden web.config kullanmıyorsunuz? !!
Mojtaba Pourmirzaei

7
@MojtabaPourmirzaei Çünkü herkes bir sistem yöneticisi değildir. IIS'nin kullanıcı arabirimine sahip olmasının nedeni budur.
Alph.Dev

IIS'de .NET dışı bir web sitesi kuruyorsanız, bunu bu şekilde yapmanız gerekir (örneğin bir Angular uygulaması).
Jon Kruger

0

Bugün bir Web çözümü Metro4 UI simgelerini dağıtırken ve CDN'den Derlenmiş seçeneğine geçerken bu sorunu yaşıyordum.

Projem WebSharper platformu kullanılarak geliştirildi, ancak çözüm yine de bu uygulama detaylarından bağımsız.

Uzun lafın kısası, ben ettik ben dosya uzantısı, örneğin için eklemek zorunda olduğunu fark .ttfiçeride, securityaltında bölümünün system.webServeriçinde Web.config.

<security>
    <requestFiltering>
        <fileExtensions>
            <add fileExtension=".ttf" allowed="true" />
        </fileExtensions>
    </requestFiltering>
</security>

Aynı yapılandırma seçeneği, IIS'nin GUI ayarları altında da mevcuttur

IIS GUI

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.