Loại MIME thích hợp cho phông chữ


249

Tìm kiếm trên web, tôi tìm thấy vô số gợi ý khác nhau về loại MIME phù hợp cho phông chữ là gì, nhưng tôi chưa thử bất kỳ loại MIME nào cung cấp cho tôi cảnh báo Chrome như sau:

Tài nguyên được hiểu là phông chữ nhưng được chuyển bằng phông chữ MIME / otf

Phông chữ là một OTF.

Tôi đã thử các loại MIME sau đây cho đến nay

  • phông chữ / otf
  • ứng dụng / font-otf
  • ứng dụng / phông chữ
  • ứng dụng / otf
  • ứng dụng / octet-stream
  • ứng dụng / x-font-otf
  • application / x-font-TrueType (Tôi biết đó không phải là truetype, nhưng một nguồn trích dẫn này cho OTF)

3
Làm thế nào để bạn thực sự viết tiêu đề cho điều này? Tôi không thực sự chắc chắn phải làm gì. Chúc mừng cho bất kỳ sự giúp đỡ bạn có thể cung cấp.
Josh Smith

1
@Josh: nếu bạn đang phục vụ phông chữ thông qua mã, bạn muốn đặt tiêu đề "loại nội dung" thành "font / opentype" (nếu bạn đang sử dụng OTF như trong câu hỏi của tôi), nhưng nếu bạn chỉ đơn giản là trỏ đến tệp phông chữ vật lý, có thể dễ dàng hơn để đặt các loại MIME trong máy chủ web của bạn. Tôi không biết máy chủ web nào bạn đang sử dụng, vì vậy hãy tìm kiếm trên google cho loại máy chủ của bạn + loại mime hoặc bắt đầu một câu hỏi mới về SO mô tả vấn đề của bạn.
David Hedlund

2
Tiêu đề là sai. Nó phải là "Làm cách nào để tắt tiếng cảnh báo" tài nguyên được hiểu là phông chữ "trong Chrome
djsadinoff

2
@djs: được cấp! Bạn biết đấy, nếu tôi có thể tìm cách khiến Chrome nhớ rằng tôi muốn bảng điều khiển của mình liệt kê các thông báo và lỗi nhật ký, nhưng không cảnh báo, có một cơ hội công bằng tôi sẽ không bao giờ hỏi câu hỏi này ngay từ đầu.
David Hedlund

Chrome đang cảnh báo chúng tôi rằng họ đang làm những gì chúng tôi yêu cầu. Tôi muốn thấy một cảnh báo khi nó tìm ra thành công bitmap để sử dụng cho glyphs nếu bạn sử dụng @ font-face với tệp .BMP!
người đàn ông không gian Cardiff

Câu trả lời:


137

Hãy thử sử dụng "font / opentype".


51
Đây là một mimetype bất hợp pháp mặc dù: không có "font /" trong các mimetypes chính thức. Một loại mime tốt hơn sẽ là "application / x-font-opentype" hoặc "application / octet-stream". Đầu tiên về cơ bản là "mimetype chưa đăng ký với tên này", thứ hai chỉ là "dữ liệu nhị phân"
dtech

Nó không hoạt động với tôi trên Chrome 16. Một thứ hoạt động là: application / vnd.oocation.opendocument.formula-template.
jayarjo

16
Có vẻ như người chiến thắng hiện tại là: application / x-font-woff - hy vọng nó có ích!
nhộn nhịp

7
@busticated điều này đã được thay đổi thành application / font-woff, xem w3.org/TR/WOFF/#appcill-b
Holger

5
fontloại hiện là chính thức iana.org/assignments/media-types/media-types.xhtml#font
mems

210

Có một số định dạng phông chữ mà người ta có thể đặt các loại MIME cho, trên cả máy chủ Apache và IIS. Theo truyền thống, tôi đã có may mắn với những điều sau đây:

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) 

Theo Lực lượng đặc nhiệm kỹ thuật Internet, người duy trì tài liệu ban đầu về Tiện ích mở rộng thư Internet đa năng (loại MIME) tại đây: http://tools.ietf.org/html/rfc2045#section-5 ... nó nói cụ thể:

" Người ta hy vọng rằng việc bổ sung vào nhóm các loại được hỗ trợ lớn hơn thường có thể được thực hiện bằng cách tạo ra các kiểu con mới của các loại ban đầu này. Trong tương lai, các loại cấp cao hơn chỉ có thể được xác định bởi một phần mở rộng theo dõi tiêu chuẩn cho tiêu chuẩn này Nếu sử dụng một loại cấp cao nhất khác vì bất kỳ lý do gì, thì phải đặt tên bắt đầu bằng "X-" để chỉ trạng thái không chuẩn của nó và để tránh xung đột tiềm ẩn với tên chính thức trong tương lai. "

Như vậy, và theo thời gian, các loại MIME bổ sung được thêm vào khi các tiêu chuẩn được tạo và chấp nhận, do đó chúng tôi thấy các ví dụ về các loại MIME cụ thể của nhà cung cấp như vnd.ms-fontobject và tương tự.

CẬP NHẬT ngày 16 tháng 8 năm 2013: WOFF đã được đăng ký chính thức tại IANA vào ngày 3 tháng 1 năm 2013Webkit đã được cập nhật vào ngày 5 tháng 3 năm 2013 và các trình duyệt cung cấp bản cập nhật này trong các phiên bản mới nhất của họ sẽ bắt đầu đưa ra cảnh báo về các loại MIME của máy chủ cũ. khai báo x-font-woff. Vì các cảnh báo chỉ gây khó chịu nên tôi khuyên bạn nên chuyển sang loại MIME được phê duyệt ngay lập tức. Trong một thế giới lý tưởng, các cảnh báo sẽ tự giải quyết kịp thời.

CẬP NHẬT ngày 26 tháng 2 năm 2015: WOFF2 hiện nằm trong Dự thảo của Biên tập viên W3C với loại mime được đề xuất. Nó có thể sẽ được nộp cho IANA trong năm tới (có thể là vào cuối năm 2016) theo các mốc thời gian tiến bộ gần đây. Cũng như SFNT, định dạng phông chữ của thùng chứa có thể mở rộng / spline được sử dụng trong tham chiếu bảng xương sống của Google Web Fonts với thư viện java sfntly của họ và đã được đăng ký dưới dạng mime với IANA và có thể được thêm vào danh sách này tùy thuộc vào nhu cầu cá nhân.

CẬP NHẬT ngày 4 tháng 10 năm 2017: Chúng tôi có thể theo dõi sự phát triển của định dạng WOFF2 tại đây với phần lớn các trình duyệt hiện đại hỗ trợ định dạng thành công. Đồng thời, chúng tôi có thể làm theo yêu cầu và tài liệu theo dõi " RFC" về loại phương tiện truyền thông cấp cao nhất của IETF về bộ phông chữ được đề xuất mới nhất để phê duyệt.


Đối với những người muốn nhúng kiểu chữ theo thứ tự phù hợp trong CSS của bạn, vui lòng truy cập bài viết này . Nhưng một lần nữa, tôi đã gặp may mắn với thứ tự sau:

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

Đối với thuộc tính tự động Subversion, chúng có thể được liệt kê dưới dạng:

# 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

Những người tốt, cảm ơn. Tôi đã có thông báo lỗi với .woff và điều này đã sửa nó trong tệp .htaccess của tôi. Tôi đã sử dụngAddType application/x-font-woff
Daniel Englander

application / x-font-opentype và application / x-font-ttf hoạt động hoàn hảo cho Linux Gnome Shell
Schmoove

1
Các ttf, otf và woff2 đã lỗi thời. Xem stackoverflow.com/a/20723357/1356047
Jonas Berlin

126

Bỏ qua cảnh báo chrome. Không có loại MIME tiêu chuẩn cho phông chữ OTF.

font / opentype có thể làm im lặng cảnh báo, nhưng điều đó không làm cho nó trở thành "đúng".

Có thể cho rằng, tốt hơn hết là bạn nên tạo một cái, ví dụ như với "application / x-opentype" vì ít nhất "application" là một loại nội dung đã đăng ký, trong khi "font" thì không.

Cập nhật: OTF vẫn là một vấn đề, nhưng WOFF đã phát triển loại ứng dụng / phông chữ IANA MIME vào tháng 1 năm 2013.

Cập nhật 2: OTF đã phát triển loại MIME: application / font-sfnt Vào tháng 3 năm 2013. Loại này cũng áp dụng cho .ttf


2
Hấp dẫn. Bạn có bất kỳ tài liệu tham khảo sao lưu này?
Kzqai

18
Không có loại mime: "Lưu ý: Vì không có loại MIME được xác định cho phông chữ TrueType, OpenType và WOFF, loại MIME của tệp được chỉ định không được xem xét." developer.mozilla.org/en/css/@font-face . Đừng tạo ra các loại mime cấp cao nhất mới, sử dụng x- thay vào đó: tools.ietf.org/html/rfc2045#section-5 - djsadinoff 3 phút trước chỉnh sửa
djsadinoff

@djsadinoff Tôi tin rằng IANA thay thế IETF. IETF gửi bản nháp cho IANA và vì IANA báo cáo rằng woff là loại MIME, nên IETF bị ghi đè trong danh sách giới hạn của nó.
Mike Kormendy

@MikeKormendy, tôi không hiểu nhận xét của bạn, nhưng bạn có thể đã đề cập đến phiên bản trước của câu trả lời của tôi chỉ đề cập đến WOFF. Tôi đã khôi phục bản gốc
djsadinoff

@djsadinoff Thật kỳ lạ, trao đổi ngăn xếp nói rằng bạn vừa nhận xét về "3 phút trước".
Mike Kormendy

85

Kể từ tháng 2 năm 2017 RFC 8081 nhóm tất cả các loại MIME cho phông chữ theo fontloại phương tiện cấp cao nhất . Các loại MIME cũ hơn từ bài đăng gốc của tôi hiện được liệt kê là không dùng nữa.

Các loại phông chữ được liệt kê bởi IANA hiện có:

Các định dạng phông chữ không chuẩn khác được để lại như sau:


[Bài viết gốc lỗi thời]

Vì vẫn còn nhiều sự nhầm lẫn trên web về các loại MIME cho phông chữ web, tôi nghĩ rằng tôi sẽ đưa ra câu trả lời hiện tại, hoàn thành với ngày hiệu lực và các liên kết hỗ trợ đến IANA và W3C.

Dưới đây là các loại MIME chính thức cho Phông chữ Web:

Lưu ý rằng có một phong trào thay đổi tất cả các loại trên thành MIME font/XXX, như được hỗ trợ bởi W3C trong đề xuất của nó cho WOFF v2. Điều này đang được Lực lượng đặc nhiệm kỹ thuật Internet (IETF) theo dõi trong Loại phông chữ cấp cao nhất và vào tháng 2 năm 2017 đã được phê duyệt trạng thái RFC (xem RFC 8081 ) vì vậy tất cả có thể thay đổi!

Mặc dù về chủ đề máy chủ web, điều đáng nói là các phản hồi HTTP có thể gzip(hoặc nói cách khác là nén) tất cả các định dạng phông chữ ở trên ngoại trừ .woff& .woff2đã được nén rất nhiều.

Tôi nói nhiều hơn trong MIME Type cho Web Fonts với (Fantom) BedSheet .


2
Bài viết trùng lặp được tự động phát hiện trên SO và bạn có nguy cơ bị xóa cả hai bài viết. Nếu bạn có thông tin hữu ích để xuất bản thì bạn nên xem xét việc hỏi và trả lời câu hỏi của riêng bạn.
Borodin

Hành động! Tôi đã bị bắt gặp! Vâng, tôi đã lười biếng. : / Tôi đã cập nhật câu trả lời khác để nó phù hợp hơn với câu hỏi liên quan. Tôi tin rằng nó vẫn phù hợp với trang này.
Steve Eynon

Có một lượng lớn câu trả lời nghi vấn được đánh giá. Tôi cố gắng đưa ra một nhận xét về những người mà tôi đánh dấu xuống, nhưng thông thường nhất câu trả lời của bạn sẽ biến mất. Hãy cố gắng duy trì chủ đề.
Borodin

@SteveEynon: Opera dựa trên Presto không hiển thị ꜱᴠɢ phông chữ được phân phát với loại mime hình ảnh.
dùng2284570

12

Là một ví dụ cụ thể của một trong hai điều khó trong điện toán, thật thú vị khi xem câu trả lời cho câu hỏi này đã thay đổi như thế nào vì câu hỏi này ban đầu được đăng. Rất may, các quyền lực đã mang lại trật tự cho sự hỗn loạn:


Vào tháng 2 năm nay (2017), W3C đã xuất bản Loại theo dõi tiêu chuẩn RFC 8081: Loại phương tiện cấp cao nhất "phông chữ" giúp đơn giản hóa rất nhiều loại phương tiện thích hợp cho các tệp phông chữ:

Bản ghi nhớ này dùng để đăng ký và ghi lại loại phương tiện cấp cao nhất "phông chữ", theo đó các kiểu con cho các định dạng đại diện cho phông chữ có thể được đăng ký. Tài liệu này cũng đóng vai trò là ứng dụng đăng ký cho một tập hợp các kiểu con dự định, đại diện cho một số kiểu con hiện có đã được sử dụng và hiện được đăng ký dưới cây "ứng dụng" bằng cách đăng ký riêng.

Đây là một tài liệu khá dễ đọc và nó mô tả bối cảnh lịch sử (thiếu Đăng ký định dạng cho phông chữ ), điều này đã dẫn đến sự pha trộn khó hiểu giữa các loại phương tiện và loại phụ. Với sự gia tăng (tương đối) gần đây về mức độ phổ biến của các phông chữ có thể tải xuống, W3C đã nhận ra sự cần thiết của một loại phông chữ cấp cao trực quan trực quan . Những gì họ nghĩ ra là trên mạng font.

Theo đó, IANA kể từ đó đã cập nhật danh sách chính thức các loại Phương tiện với fontloại phương tiện và tất cả các loại phụ mà hiện tại họ nhận ra:

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

Đây là hy vọng đây là câu trả lời cuối cùng mà câu hỏi này cần.


2
Anthony, đây là một tài nguyên tuyệt vời khác ngoài bài viết của tôi. Cảm ơn đã chia sẻ điều này ở đây!
Mike Kormendy


6

FWIW liên quan đến Apache 2.2 Virtualhosting và mod_mime đã được thử nghiệm trên Debian Linux và OS X Leopard và Snow Leopard:

Nếu bạn có cấu hình Virtualhost, bạn sẽ muốn thêm các loại thông qua Chỉ thị AddType như sau ít nhất ở dưới cùng của cấu hình như sau:

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

Đã thử nghiệm với Chrome Un Ổn định / Trunk và Safari WebKit Nightly để loại bỏ các cảnh báo luồng octet mime cho cả hai loại phông chữ ttf và otf.

Lưu ý: .htaccess không có hiệu lực khi giao dịch với Virtualhosting. Nếu bạn đang phát triển cho một số trang web, bạn sẽ sử dụng phát triển Virtualhosting và mỗi cấu hình sẽ cần những bổ sung AddType này.


6

Tôi vừa làm một số nghiên cứu về danh sách chính thức của IANA . Tôi tin rằng câu trả lời được đưa ra ở đây 'font / xxx' là không chính xác vì không có loại 'font' trong tiêu chuẩn MIME.

Dựa trên RFC và IANA, đây có vẻ là trạng thái hiện tại của trò chơi vào tháng 5 năm 2013:

Ba người này là chính thức và được chỉ định bởi IANA:

  • svg là "hình ảnh / svg + xml"
  • woff là "application / font-woff"
  • eot là "application / vnd.ms-fontobject"

Đây không phải là chính thức / được chỉ định và do đó phải sử dụng cú pháp 'x-':

  • ttf là "application / x-font-ttf"
  • otf là "application / x-font-opentype"

Ứng dụng / font-woff xuất hiện mới và có thể chỉ chính thức kể từ tháng 1 năm 2013. Vì vậy, "application / x-font-woff" có thể an toàn hơn / tương thích hơn trong thời gian ngắn.


5

Kể từ tháng 3 năm 2013, IANA.ORG đề xuất cho .otf :
application/font-sfnt

Các phông chữ khác:

.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)

Xem thêm ...


2

Có thể sử dụng các mục sau trong không gian Sách điện tử:

application/vnd.ms-opentype

Tôi sẽ tưởng tượng rằng nó là giống nhau cho web.




1

Có lẽ điều này sẽ giúp được ai đó. Tôi thấy rằng trên IIS 7 .ttfđã là một loại mime được biết đến. Nó được cấu hình là:

application/octet-stream

Vì vậy, tôi chỉ nói thêm rằng đối với tất cả các loại font chữ CSS ( .oet, .svg, .ttf,.woff ) và IIS bắt đầu phục vụ họ. Các công cụ phát triển Chrome cũng không phàn nàn về việc diễn giải lại loại này.

Chúc mừng, Michael


1
application/octet-streamít hơn một "kiểu đã biết" và nhiều hơn một "bó byte chung". :) Trình duyệt phàn nàn về việc được phục vụ loại này, vì nó không có thông tin về cách các công cụ nên được giải thích.
cHao

-1

Một cách để tắt cảnh báo này khỏi Chrome là cập nhật Chrome và sau đó đảm bảo loại mime của bạn là một trong những cách sau:

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

Danh sách này theo bản vá được tìm thấy tại Bug 111418 tại webkit.org .

Bản vá tương tự sẽ chuyển thông điệp từ "Cảnh báo" sang "Nhật ký", do đó, chỉ cần nâng cấp Chrome lên bất kỳ phiên bản nào trong tháng 3 năm 2013 sẽ thoát khỏi hình tam giác màu vàng.

Vì câu hỏi liên quan đến việc tắt tiếng cảnh báo Chrome và mọi người có thể giữ các phiên bản Chrome cũ vì bất kỳ lý do gì, tôi cho rằng điều này đáng để thêm vào.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.