Font Face ไม่ทำงานใน IIS 8.0


118

ฉันมี font-face ในโปรแกรมของฉันที่สร้างจาก Font Squirrel ฉันไม่สามารถทำให้มันทำงานใน IIS ได้มันทำงานใน localhost ฉันเพิ่มแอพลิเคชัน / font-WOFF บทความประเภท MIME ของฉัน แต่ก็ยังไม่ต้องการที่จะทำงาน

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

แก้ไขเวลาปัจจุบัน

ฉันใช้แบบอักษร IIS 8 MIME เริ่มต้น/ x-woff


คุณเรียกมันว่าอย่างไร? คุณลองเอาท์พุทตัวอย่างใน Font Squirrel zip หรือไม่?
Aibrean

หากคุณใช้ IIS 8 คุณไม่ควรต้องเพิ่มประเภท mime ในการกำหนดค่าเว็บของคุณสำหรับ WOFF ในความเป็นจริงมันน่าจะเกิดข้อผิดพลาดมากกว่าสำหรับการทำซ้ำ
Colin Bacon

@Aibrean ใช่ผลลัพธ์ตัวอย่าง
joetinger

@ColinBacon ฉันอ่านหลังจากที่ฉันโพสต์ ดังนั้นฉันจึงมีฟอนต์ / x-woff ซึ่งสืบทอดมาจาก IIS 8.0 แต่ยังไม่มีโชคในการเลือกแบบอักษรที่ถูกต้อง
joetinger

คำตอบ:


259

เยี่ยมมากที่ได้เห็น WOFF2 รวมอยู่ในฟอนต์ Font Squirrel! ขณะที่ IIS 8 ไม่จำเป็นชนิดไมม์เพิ่มสำหรับมันจะต้องหนึ่งสำหรับWOFF WOFF2W3C แนะนำ :

application/font-woff2

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการWOFF2ดูที่นี่

หากต้องการเพิ่มประเภท mime ใน IIS ให้แก้ไขWeb.Configดังนี้:

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

2
ฉันเพิ่มwoff2แต่ก็ยังไม่มีอะไร
joetinger

4
หากคุณดูในเครื่องมือ dev ของคุณ คุณได้รับ 404 เมื่อพยายามรับไฟล์ฟอนต์หรือไม่? ตรวจสอบเส้นทางที่ถูกต้องและคุณมีสิทธิ์เรียกดูในเบราว์เซอร์ของคุณ
Colin Bacon

ใช่http://192.168.72.196:85/bundles/Fonts/subway-webfont.woff2ฉันไม่แน่ใจว่าพวกเขารับโฟลเดอร์บันเดิลมาจากที่ใด ความคิดใด ๆ ?
joetinger

4
ฉันถือว่าคุณกำลังใช้การรวมและการย่อขนาด ASP.NET BundleTable.EnableOptimizations = trueถ้าคุณตั้งค่านี้ในการกำหนดค่าของคุณกำ โฮสต์ภายในของคุณควรทำงานเหมือนกับบนเซิร์ฟเวอร์ที่ใช้งานจริงของคุณ
Colin Bacon

1
ขอบคุณสำหรับความช่วยเหลือทั้งหมดที่ตอนนี้ใช้งานได้ มันเป็นการรวมกันของwoff2ข้อผิดพลาด 404 ซึ่งลงท้ายด้วยการสะกดผิดในบันเดิลของฉัน ขอบคุณ!
joetinger

79

ในการสร้างฟอนต์ woff และ woff2 เพื่อให้ทำงานได้อย่างถูกต้องใน IIS คุณควรเพิ่มประเภท MIME ต่อไปนี้ในไฟล์ Web.Config

<?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>

หากคุณยังคงพบข้อผิดพลาด 404 บน Google Chrome คุณควรล้างแคชของเบราว์เซอร์ก่อนที่จะโหลดหน้านี้ซ้ำ


2
ข้อมูลจำเพาะคือตอนนี้แนะนำ MIMETYPE สำหรับ WOFF จะเป็นแอพลิเคชัน / font-WOFF
Steven

2
ฉันได้รับปัญหา. woff2 404 เท่านั้นและสิ่งนี้ใช้ได้ผลสำหรับฉัน ฉันใช้เฉพาะบรรทัดที่เกี่ยวข้องกับ woff2
Francisc0

26

โปรดทราบว่ายังสามารถกำหนดค่าประเภท MIME ภายในตัวจัดการ IIS เพียงแค่เลือกเว็บไซต์จากนั้นดับเบิลคลิกที่ไอคอนประเภท MIME ภายใต้ IIS ในบานหน้าต่างหลัก

ใส่คำอธิบายภาพที่นี่

จากนั้นคุณจะเห็นรายการประเภท MIME ที่มีอยู่ทั้งหมดและสามารถเพิ่มใหม่ได้โดยใช้ลิงก์เพิ่ม ... ในบานหน้าต่างด้านขวา


2
ทำไมไม่ใช้ web.config ล่ะ !!
Mojtaba Pourmirzaei

7
@MojtabaPourmirzaei เพราะไม่ใช่ทุกคนที่เป็น sysadmin นั่นคือเหตุผลทั้งหมดที่ IIS มี UI
Alph.Dev

หากคุณกำลังปรับใช้เว็บไซต์ที่ไม่ใช่ NET ใน IIS คุณต้องดำเนินการด้วยวิธีนี้ (เช่นแอป Angular)
จอนครูเกอร์

0

วันนี้ฉันประสบปัญหานี้ในขณะที่ปรับใช้ไอคอนเว็บโซลูชัน Metro4 UI และเปลี่ยนจาก CDN เป็นตัวเลือกคอมไพล์

โครงการของฉันได้รับการพัฒนาโดยใช้แพลตฟอร์ม WebSharper แต่โซลูชันนี้ไม่ขึ้นอยู่กับรายละเอียดการใช้งานเหล่านี้

เรื่องสั้นสั้น ๆ ฉันค้นพบว่าฉันต้องเพิ่มนามสกุลไฟล์เช่นสำหรับ .ttfภายในsecurityส่วนภายใต้system.webServerไฟล์Web.config.

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

นอกจากนี้ยังมีตัวเลือกการกำหนดค่าเดียวกันภายใต้การตั้งค่า GUI ของ IIS

IIS GUI

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.