ประเภท MIME ที่เหมาะสมสำหรับแบบอักษร


249

ค้นหาเว็บฉันพบกองคำแนะนำต่าง ๆ สำหรับแบบอักษร MIME ที่เหมาะสมสำหรับตัวอักษร แต่ฉันยังไม่ได้ลองใช้ชนิด MIME ที่ทำให้คำเตือน Chrome ของฉันดังต่อไปนี้:

ทรัพยากรตีความว่าเป็นแบบอักษร แต่ถ่ายโอนด้วยแบบอักษร MIME / otf

แบบอักษรคือ OTF

ฉันลองประเภท MIME ต่อไปนี้แล้ว

  • / font OTF
  • แอพลิเคชัน / font-OTF
  • แอพลิเคชัน / font
  • แอพลิเคชัน / OTF
  • application / octet สตรีม
  • แอพลิเคชัน / x-ตัวอักษร OTF
  • application / x-font-TrueType (ฉันรู้ว่ามันไม่ใช่ truetype แต่มีแหล่งอ้างอิงหนึ่งแหล่งสำหรับ OTF)

3
คุณจะเขียนหัวข้อนี้ได้อย่างไร? ฉันไม่แน่ใจจริงๆว่าจะทำอย่างไร ไชโยสำหรับความช่วยเหลือใด ๆ ที่คุณสามารถให้
Josh Smith

1
@ จอช: หากคุณให้บริการแบบอักษรผ่านรหัสคุณต้องการตั้งค่าส่วนหัว "content-type" เป็น "font / opentype" (ถ้าคุณใช้ OTF เหมือนในคำถามของฉัน) แต่ถ้าคุณแค่ ชี้ไปที่ไฟล์ฟอนต์ทางกายภาพการตั้งค่าประเภท MIME ในเว็บเซิร์ฟเวอร์ของคุณอาจทำได้ง่ายกว่า ฉันไม่ทราบว่าคุณใช้เว็บเซิร์ฟเวอร์ใดอยู่ดังนั้นให้ค้นหา google สำหรับประเภทเซิร์ฟเวอร์ของคุณ+ mimeหรือเริ่มคำถามใหม่เพื่ออธิบายปัญหาของคุณ
David Hedlund

2
ชื่อผิด ควรเป็น "ฉันจะเงียบคำเตือน" ทรัพยากรที่ตีความว่าเป็นแบบอักษร "ใน Chrome ได้อย่างไร
djsadinoff

2
@djs: ได้รับ! คุณรู้ไหมถ้าฉันสามารถหาวิธีที่จะทำให้ Chrome จำได้ว่าฉันต้องการให้คอนโซลของฉันแสดงรายการข้อความและข้อผิดพลาด แต่ไม่ใช่คำเตือนมีโอกาสพอสมควรที่ฉันจะไม่เคยถามคำถามนี้ตั้งแต่แรก
David Hedlund

Chrome เตือนเราว่ากำลังทำสิ่งที่เราถาม ฉันอยากจะเห็นคำเตือนเมื่อประสบความสำเร็จในการหาบิตแมปที่จะใช้สำหรับร่ายมนตร์หากคุณใช้ @ font-face ด้วยไฟล์. BMP!
คนที่ว่างใน cardiff

คำตอบ:


137

ลองใช้ "font / opentype"


51
นี่คือ mimetype ที่ผิดกฎหมาย แต่ไม่มี "font /" ใน mimetypes ที่เป็นทางการ ประเภท mime ที่ดีกว่าคือ "application / x-font-opentype" หรือ "application / octet-stream" ที่แรกก็คือ "mime ชนิดที่ไม่ได้จดทะเบียนกับชื่อนี้" ที่สองเพียงแค่ "ข้อมูลไบนารี"
dtech

มันใช้งานไม่ได้สำหรับฉันบน Chrome 16 สิ่งหนึ่งที่ใช้ได้คือ: application / vnd.oasis.opendocument.formula-template
jayarjo

16
ดูเหมือนว่าผู้ชนะในปัจจุบันคือ: application / x-font-woff - หวังว่ามันจะช่วยได้!
จับเมื่อ

7
@busticated นี้ถูกเปลี่ยนเป็น application / font-woff โปรดดูw3.org/TR/WOFF/#appendix-b
Holger


210

มีรูปแบบตัวอักษรจำนวนหนึ่งที่สามารถตั้งค่าชนิด MIME บนทั้งเซิร์ฟเวอร์ Apache และ IIS ฉันมีโชคตามธรรมเนียมดังต่อไปนี้:

svg   as "image/svg+xml"                  (W3C: August 2011)
ttf   as "application/x-font-ttf"         (IANA: March 2013)
      or "application/x-font-truetype"
otf   as "application/x-font-opentype"    (IANA: March 2013)
woff  as "application/font-woff"          (IANA: January 2013)
woff2 as "application/font-woff2"         (W3C W./E.Draft: May 2014/March 2016)
eot   as "application/vnd.ms-fontobject"  (IANA: December 2005)
sfnt  as "application/font-sfnt"          (IANA: March 2013) 

ตามที่ Internet Engineering Task Force ที่ดูแลรักษาเอกสารเริ่มต้นเกี่ยวกับ Multipurpose Internet Mail Extensions (ชนิด MIME) ที่นี่: http://tools.ietf.org/html/rfc2045#section-5 ... ระบุไว้โดยเฉพาะ:

" เป็นที่คาดหวังว่าการเพิ่มเติมไปยังชุดประเภทที่รองรับที่ใหญ่กว่านั้นสามารถทำได้โดยการสร้างประเภทย่อยใหม่ของประเภทเริ่มต้นเหล่านี้ในอนาคตประเภทระดับบนสุดเพิ่มเติมอาจถูกกำหนดโดยส่วนขยายแทร็กมาตรฐานในมาตรฐานนี้เท่านั้น . ถ้าชนิดบนอีกระดับหนึ่งที่จะใช้ด้วยเหตุผลใด ๆ ก็จะต้องได้รับชื่อเริ่มต้นด้วย "แกน X" เพื่อแสดงสถานะที่ไม่ได้มาตรฐานและเพื่อหลีกเลี่ยงความขัดแย้งที่อาจเกิดขึ้นที่มีชื่ออย่างเป็นทางการในอนาคต. "

เนื่องจากเป็นและเมื่อเวลาผ่านไปชนิด MIME เพิ่มเติมจะถูกเพิ่มตามมาตรฐานที่สร้างและยอมรับดังนั้นเราจึงเห็นตัวอย่างของประเภท MIME เฉพาะของผู้ขายเช่น vnd.ms-fontobject และสิ่งที่คล้ายกัน

อัปเดต 16 สิงหาคม 2556: WOFF ได้รับการจดทะเบียนอย่างเป็นทางการที่ IANA ในวันที่ 3 มกราคม 2013และWebkit ได้รับการอัปเดตเมื่อวันที่ 5 มีนาคม 2013และเบราว์เซอร์ที่จัดหาการอัปเดตนี้ในเวอร์ชันล่าสุดจะเริ่มออกคำเตือนเกี่ยวกับเซิร์ฟเวอร์ประเภท MIME ประกาศ x-font-woff เนื่องจากคำเตือนนั้นน่ารำคาญฉันจึงขอแนะนำให้เปลี่ยนไปใช้ประเภท MIME ที่อนุมัติทันที ในโลกอุดมคติอุดมคติคำเตือนจะแก้ไขได้ทันเวลา

อัปเดต 26 กุมภาพันธ์ 2558: WOFF2 อยู่ในร่าง W3C Editor ที่มีประเภท mime ที่เสนอ มันน่าจะถูกส่งไปยัง IANA ในปีหน้า (อาจจะเป็นปลายปี 2016) หลังจากช่วงเวลาความคืบหน้าล่าสุด เช่นเดียวกับ SFNT รูปแบบฟอนต์คอนเทนเนอร์ที่ปรับขนาดได้ / spline ที่ใช้ในการอ้างอิงตารางแบ็คโบนของGoogle Web Fonts ด้วยไลบรารี java sfntlyและลงทะเบียนเป็นประเภท mime กับ IANAแล้วและสามารถเพิ่มลงในรายการนี้ได้เช่นกัน

อัปเดต 4 ตุลาคม 2560:เราสามารถติดตามความก้าวหน้าของรูปแบบ WOFF2 ที่นี่ด้วยเบราว์เซอร์สมัยใหม่ส่วนใหญ่ที่สนับสนุนรูปแบบสำเร็จ นอกจากนี้เรายังสามารถติดตามคำขอแบบอักษร "ระดับ" ระดับสูงสุดของประเภทสื่อของ IETF สำหรับความคิดเห็น (RFC) ตัวติดตามและเอกสารเกี่ยวกับชุดแบบอักษรที่เสนอล่าสุดเพื่อขออนุมัติ


สำหรับผู้ที่ต้องการที่จะฝังตัวอักษรในการสั่งซื้อที่เหมาะสมในการ CSS ของคุณกรุณาเยี่ยมชมบทความนี้ แต่อีกครั้งฉันโชคดีกับคำสั่งต่อไปนี้:

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

สำหรับคุณสมบัติการโค่นล้มอัตโนมัติเหล่านี้สามารถแสดงรายการเป็น:

# Font formats
svg   = svn:mime-type=image/svg+xml
ttf   = svn:mime-type=application/x-font-ttf
otf   = svn:mime-type=application/x-font-opentype
woff  = svn:mime-type=application/font-woff
woff2 = svn:mime-type=application/font-woff2
eot   = svn:mime-type=application/vnd.ms-fontobject
sfnt  = svn:mime-type=application/font-sfnt

คนดีขอบคุณ ฉันมีข้อความแสดงข้อผิดพลาดด้วย. woff และสิ่งนี้แก้ไขได้ในไฟล์. htaccess ของฉัน ฉันใช้AddType application/x-font-woff
Danny Englander

application / x-font-opentype และ application / x-font-ttf ทำงานได้อย่างสมบูรณ์แบบสำหรับ Linux Gnome Shell
Schmoove

1
ttf, otf และ woff2 ล้าสมัยแล้ว ดูstackoverflow.com/a/20723357/1356047
Jonas Berlin

126

ละเว้นคำเตือนของโครเมี่ยม ไม่มีชนิด MIME มาตรฐานสำหรับแบบอักษร OTF

แบบอักษร / opentype อาจเงียบคำเตือน แต่นั่นไม่ได้ทำให้ "ถูกต้อง" สิ่งที่ต้องทำ

คุณควรทำการสมัครสมาชิกด้วยเช่น "application / x-opentype" เพราะอย่างน้อย "application" เป็นประเภทเนื้อหาที่ลงทะเบียนแล้วในขณะที่ "font" ไม่ใช่

อัปเดต: OTF ยังคงมีปัญหา แต่ WOFF เพิ่มประเภทแอปพลิเคชัน / แบบอักษร -Woffประเภท IANA MIME ในเดือนมกราคม 2013

อัปเดต 2: OTF ได้เพิ่มประเภท MIME: application / font-sfntในเดือนมีนาคม 2013 ประเภทนี้ยังใช้กับ. ttf


2
น่าสนใจ คุณมีข้อมูลอ้างอิงที่สำรองข้อมูลนี้หรือไม่
Kzqai

18
ไม่มีประเภท mime: "หมายเหตุ: เนื่องจากไม่มีประเภท MIME ที่กำหนดไว้สำหรับแบบอักษร TrueType, OpenType และ WOFF ประเภท MIME ของไฟล์ที่ระบุจึงไม่ได้รับการพิจารณา" developer.mozilla.org/en/css/@font-face อย่าสร้าง mime-type ระดับบนสุดใหม่ใช้ x- แทน: tools.ietf.org/html/rfc2045#section-5 - djsadinoff 3 นาทีที่แล้วแก้ไข
djsadinoff

@djsadinoff ฉันเชื่อว่า IANA เข้ามาแทนที่ IETF IETF ส่งร่างจดหมายไปยัง IANAและเนื่องจาก IANA รายงานว่า woff เป็นประเภท MIME ดังนั้น IETF จึงถูกเขียนทับในรายชื่อที่ จำกัด
Mike Kormendy

@MikeKormendy ฉันไม่เข้าใจความคิดเห็นของคุณ แต่คุณอาจอ้างอิงถึงคำตอบของฉันในเวอร์ชันก่อนหน้าซึ่งระบุที่อยู่ WOFF เท่านั้น ฉันได้คืนค่าดั้งเดิม
djsadinoff

@djsadinoff มันแปลกมากการแลกเปลี่ยนสแต็คบอกว่าคุณเพิ่งแสดงความคิดเห็นเกี่ยวกับว่า "3 นาทีก่อน"
Mike Kormendy

85

ตั้งแต่ ก.พ. 2017 RFC 8081จัดกลุ่มประเภท MIME ทั้งหมดสำหรับแบบอักษรภายใต้fontประเภทสื่อระดับสูงสุด ประเภท MIME ที่เก่ากว่าจากการโพสต์ดั้งเดิมของฉันถูกแสดงว่าเลิกใช้แล้ว

ประเภทแบบอักษรที่ระบุโดย IANAอยู่ในขณะนี้:

รูปแบบตัวอักษรอื่น ๆ ที่ไม่ได้มาตรฐานจะถูกปล่อยไว้ดังนี้:


[โพสต์ต้นฉบับที่ล้าสมัย]

เนื่องจากยังมีความสับสนมากมายเกี่ยวกับเว็บเกี่ยวกับประเภท MIME สำหรับแบบอักษรบนเว็บฉันคิดว่าฉันจะให้คำตอบปัจจุบันพร้อมวันที่มีผลบังคับใช้และลิงก์ที่สนับสนุนไปยังIANAและ W3C

นี่คือ MIME ประเภทอย่างเป็นทางการสำหรับ Web Fonts:

โปรดทราบว่ามีการเคลื่อนไหวเพื่อเปลี่ยนประเภททั้งหมดข้างต้นเป็นประเภท MIME font/XXXซึ่งได้รับการสนับสนุนโดย W3C ในข้อเสนอสำหรับ WOFF v2 สิ่งนี้ถูกติดตามโดย Internet Engineering Task Force (IETF) ภายใต้แบบอักษร Top Level Typeและในเดือนกุมภาพันธ์ 2017 ได้รับการอนุมัติสถานะ RFC (ดูRFC 8081 ) ดังนั้นมันอาจเปลี่ยนแปลงทั้งหมด!

ขณะที่อยู่ในหัวข้อของเว็บเซิร์ฟเวอร์เป็นเรื่องที่ควรกล่าวถึงว่าการตอบกลับ HTTP อาจgzip(หรือบีบอัด) รูปแบบตัวอักษรทั้งหมดข้างต้นยกเว้น.woff& .woff2ที่ถูกบีบอัดอย่างหนักแล้ว

ผมพูดอื่น ๆ ในประเภท MIME สำหรับเว็บแบบอักษรที่มี (Fantom) ผ้าปูที่นอน


2
โพสต์ซ้ำถูกตรวจพบโดยอัตโนมัติใน SO และคุณเสี่ยงที่จะลบโพสต์ทั้งคู่ หากคุณมีข้อมูลที่เป็นประโยชน์ในการเผยแพร่คุณควรพิจารณาถามและตอบคำถามของคุณเอง
Borodin

Ack! ฉันถูกจับได้! ใช่ฉันขี้เกียจ : / ฉันได้อัปเดตคำตอบอื่น ๆ ดังนั้นจึงเกี่ยวข้องกับคำถามที่เกี่ยวข้องมากกว่า ฉันเชื่อว่ามันยังคงเป็นแบบที่ดีสำหรับหน้านี้แม้ว่า
Steve Eynon

มีคำตอบที่น่าสงสัยมากมายที่ต้องประเมิน ฉันพยายามแสดงความคิดเห็นเกี่ยวกับสิ่งที่ฉันทำเครื่องหมาย แต่โดยทั่วไปคำตอบของคุณจะหายไป กรุณาพยายามที่จะยังคงอยู่เฉพาะที่
Borodin

@SteveEynon: Opera ที่ใช้ Presto จะไม่แสดงผลฟอนต์ served ที่ให้บริการด้วยประเภท mime ของภาพ
2284570

12

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


ในเดือนกุมภาพันธ์ปีนี้ (2017), W3C เผยแพร่Standard Track RFC 8081: "font" ประเภทสื่อระดับบนสุดซึ่งง่ายประเภทสื่อที่เหมาะสมสำหรับไฟล์แบบอักษร:

บันทึกนี้ทำหน้าที่ในการลงทะเบียนและบันทึกเอกสารประเภทสื่อสิ่งพิมพ์ระดับบนสุด "แบบอักษร" ภายใต้ชนิดย่อยสำหรับรูปแบบการแสดงแบบอักษรสำหรับแบบอักษรที่อาจลงทะเบียน เอกสารนี้ยังทำหน้าที่เป็นแอปพลิเคชันการลงทะเบียนสำหรับชุดย่อยที่ต้องการซึ่งเป็นตัวแทนของชนิดย่อยที่มีอยู่แล้วที่ใช้อยู่และลงทะเบียนในปัจจุบันภายใต้ทรี "แอปพลิเคชัน" โดยการลงทะเบียนแยกต่างหาก

มันค่อนข้างเป็นเอกสารที่สามารถอ่านได้และอธิบายบริบททางประวัติศาสตร์ (ขาด"การลงทะเบียนของรูปแบบสำหรับแบบอักษร" ) ซึ่งก่อให้เกิดความสับสนในการผสมสื่อประเภทและประเภทย่อย ด้วย (ค่อนข้าง) เพิ่มขึ้นล่าสุดในความนิยมของเว็บแบบอักษรดาวน์โหลด W3C ได้รับการยอมรับความจำเป็นในการ“รูปแบบตัวอักษรที่ใช้งานง่ายระดับบนสุด” สิ่งที่พวกเขาขึ้นมาด้วยคือ font...

ดังนั้น IANA จึงได้อัปเดตรายการประเภทสื่ออย่างเป็นทางการของพวกเขาด้วยประเภทfontสื่อและประเภทย่อยทั้งหมดที่พวกเขารู้จักในปัจจุบัน:

collection  font/collection
otf     font/otf
sfnt    font/sfnt
ttf     font/ttf
woff    font/woff
woff2   font/woff2

นี่คือความหวังนี่คือคำตอบสุดท้ายที่คำถามนี้ต้องการ


2
แอนโทนี่เป็นอีกแหล่งข้อมูลที่ดีนอกเหนือจากโพสต์ของฉัน ขอบคุณสำหรับการแบ่งปันที่นี่!
Mike Kormendy


6

FWIW เกี่ยวกับ Apache 2.2 VirtualHosting และ mod_mime ทดสอบบน Debian Linux และ OS X Leopard และ Snow Leopard:

หากคุณมีการกำหนดค่า VirtualHost คุณจะต้องเพิ่มประเภทผ่านคำสั่ง AddType ดังนี้อย่างน้อยด้านล่างของการกำหนดค่าดังต่อไปนี้:

....
   AddType font/opentype .otf
   AddType font/ttf .ttf
</VirtualHost>

ทดสอบกับ Chrome Unstable / Trunk และ Safari WebKit Nightly ซึ่งกำจัดคำเตือน octet-stream mime สำหรับทั้งแบบอักษร ttf และ otf

หมายเหตุ: .htaccess จะไม่มีผลกระทบเมื่อจัดการกับ VirtualHosting หากคุณกำลังพัฒนาสำหรับหลายเว็บไซต์คุณจะใช้ VirtualHosting development และการกำหนดค่าแต่ละรายการจะต้องมี AddType เพิ่มเติม


6

ผมก็ไม่ได้บางวิจัยในIANA รายการอย่างเป็นทางการ ฉันเชื่อว่าคำตอบที่ให้ไว้ที่นี่ 'แบบอักษร / xxx' ไม่ถูกต้องเนื่องจากไม่มีประเภท 'แบบอักษร' ในมาตรฐาน MIME

จาก RFCs และ IANA ดูเหมือนว่าจะเป็นสถานะปัจจุบันของการเล่น ณ เดือนพฤษภาคม 2556:

สามคนนี้เป็นทางการและได้รับมอบหมายจาก IANA:

  • svg เป็น "รูปภาพ / svg + xml"
  • woff เป็น "application / font-woff"
  • eot เป็น "application / vnd.ms-fontobject"

สิ่งเหล่านี้ไม่ใช่แบบเป็นทางการ / ไม่เป็นทางการและต้องใช้ไวยากรณ์ 'x-':

  • ttf เป็น "application / x-font-ttf"
  • otf เป็น "แอปพลิเคชัน / x-font-opentype"

แอปพลิเคชัน / font-woff ปรากฏขึ้นใหม่และอาจเป็นทางการตั้งแต่เดือนมกราคม 2013 ดังนั้น "application / x-font-woff" จึงอาจปลอดภัยกว่า / เข้ากันได้มากกว่าในระยะสั้น


5

ตั้งแต่มีนาคม 2013 IANA.ORG แนะนำสำหรับ. otf :
application/font-sfnt

แบบอักษรอื่น ๆ :

.eot  ->  application/vnd.ms-fontobject (as from December 2005)
.otf  ->  application/font-sfnt         (as from March 2013)
.svg  ->  image/svg+xml                 (as from August 2011)
.ttf  ->  application/font-sfnt         (as from March 2013)
.woff ->  application/font-woff         (as from January 2013)

ดูเพิ่มเติม ...


2

ต่อไปนี้สามารถใช้ในพื้นที่ eBook:

application/vnd.ms-opentype

ฉันคิดว่ามันเหมือนกันสำหรับเว็บ




1

บางทีนี่อาจช่วยใครซักคน ฉันเห็นว่าใน IIS 7 .ttfเป็น mime-type ที่รู้จักกันแล้ว มันกำหนดค่าเป็น:

application/octet-stream

ดังนั้นฉันเพิ่งเพิ่มว่าทุกรูปแบบอักษรแบบ CSS ( .oet, .svg, .ttf, .woff) และ IIS เริ่มให้บริการพวกเขา เครื่องมือ Chrome dev ไม่บ่นเกี่ยวกับการตีความประเภทอีกครั้ง

ไชโยไมเคิล


1
application/octet-streamน้อยกว่า "ชนิดที่รู้จัก" และอื่น ๆ "จำนวนไบต์ทั่วไป" :) เบราว์เซอร์บ่นเกี่ยวกับการให้บริการประเภทนี้เพราะมันไม่มีข้อมูลเกี่ยวกับวิธีการตีความสิ่งต่าง ๆ
cHao

-1

วิธีหนึ่งในการปิดเสียงเตือนจาก Chromeนี้คือการอัปเดต Chrome และตรวจสอบให้แน่ใจว่าประเภท mime ของคุณเป็นหนึ่งในสิ่งเหล่านี้:

 "font/ttf"
 "font/opentype"
 "application/font-woff"
 "application/x-font-type1"
 "application/x-font-ttf"
 "application/x-truetype-font"

รายการนี้ต่อแพทช์ที่พบข้อบกพร่องที่ webkit.org

แพทช์เดียวกันจะลดระดับข้อความจาก "คำเตือน" เป็น "บันทึก" ดังนั้นเพียงอัปเกรด Chrome เป็นเวอร์ชันโพสต์มีนาคม 2013 ใด ๆ จะกำจัดสามเหลี่ยมสีเหลือง

เนื่องจากคำถามเกี่ยวกับการปิดเสียงเตือนของ Chrome และผู้คนอาจจะยึดติดกับ Chrome รุ่นเก่าไม่ว่าด้วยเหตุผลใดฉันจึงคิดว่านี่เป็นสิ่งที่ควรค่าแก่การเพิ่ม

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