当前位置:  开发笔记 > 编程语言 > 正文

适合字体的MIME类型

如何解决《适合字体的MIME类型》经验,为你挑选了7个好方法。

在网上搜索,我找到了大量关于字体的正确MIME类型的不同建议,但我还没有尝试任何可以解决Chrome警告的MIME类型,如下所示:

资源解释为字体但使用MIME类型font/otf传输

字体是OTF.

到目前为止,我已尝试过以下MIME类型

字体/ OTF

应用/字体OTF

应用/字体

应用程序/ OTF

应用/八位字节流

应用程序/ x-字体OTF

application/x-font-TrueType(我知道它不是truetype,但有一个来源引用了这个OTF)

Mike Kormend.. 202

在Apache和IIS服务器上,可以使用多种字体格式设置MIME类型.我传统上有以下运气:

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邮件扩展(MIME类型)的初始文档:http://tools.ietf.org/html/rfc2045#section-5 ...它具体说明:

" 通常可以通过创建这些初始类型的新子类型来实现对更大的受支持类型集的添加.将来,更多顶级类型可能只能通过标准轨道扩展来定义如果出于任何原因使用另一种顶级类型,则必须给它一个以"X-"开头的名称,以表明其非标准状态并避免与未来的官方名称发生潜在冲突. "

随着时间的推移,随着时间的推移,在创建和接受标准时会添加其他MIME类型,因此我们会看到供应商特定MIME类型的示例,例如vnd.ms-fontobject等.

UPDATE 2013年8月16日: WOFF是在IANA正式注册于2013年1月3日,和Webkit的已更新2013年3月5日和在其最新版本采购此更新的浏览器将开始发行有关服务器的MIME类型的警告与老x-font-woff声明.由于警告只是令人讨厌,我建议立即切换到批准的MIME类型.在理想的世界中,警告会及时解决.

更新2015年2月26日: WOFF2现在处于W3C编辑的草案中,提议使用mime类型.它可能会在最近的进度时间表之后在明年(可能在2016年底)提交给IANA.还有SFNT,Google Web Fonts主干表参考中使用的可扩展/样条容器字体格式及其非常简单的Java库,并且已经注册为IANA的mime类型,并且可以根据个人需要添加到此列表中.

UPDATE 2017年10月4日:我们可以按照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;
}

对于Subversion自动属性,这些可以列为:

# 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


小智.. 133

尝试使用"font/opentype".



1> Mike Kormend..:

在Apache和IIS服务器上,可以使用多种字体格式设置MIME类型.我传统上有以下运气:

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邮件扩展(MIME类型)的初始文档:http://tools.ietf.org/html/rfc2045#section-5 ...它具体说明:

" 通常可以通过创建这些初始类型的新子类型来实现对更大的受支持类型集的添加.将来,更多顶级类型可能只能通过标准轨道扩展来定义如果出于任何原因使用另一种顶级类型,则必须给它一个以"X-"开头的名称,以表明其非标准状态并避免与未来的官方名称发生潜在冲突. "

随着时间的推移,随着时间的推移,在创建和接受标准时会添加其他MIME类型,因此我们会看到供应商特定MIME类型的示例,例如vnd.ms-fontobject等.

UPDATE 2013年8月16日: WOFF是在IANA正式注册于2013年1月3日,和Webkit的已更新2013年3月5日和在其最新版本采购此更新的浏览器将开始发行有关服务器的MIME类型的警告与老x-font-woff声明.由于警告只是令人讨厌,我建议立即切换到批准的MIME类型.在理想的世界中,警告会及时解决.

更新2015年2月26日: WOFF2现在处于W3C编辑的草案中,提议使用mime类型.它可能会在最近的进度时间表之后在明年(可能在2016年底)提交给IANA.还有SFNT,Google Web Fonts主干表参考中使用的可扩展/样条容器字体格式及其非常简单的Java库,并且已经注册为IANA的mime类型,并且可以根据个人需要添加到此列表中.

UPDATE 2017年10月4日:我们可以按照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;
}

对于Subversion自动属性,这些可以列为:

# 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



2> 小智..:

尝试使用"font/opentype".


这是一个非法的mimetype:官方mimetypes中没有"font /".更好的mime类型是"application/x-font-opentype"或"application/octet-stream".第一个基本上是"带有此名称的未注册的mimetype",第二个只是"二进制数据"
看起来目前的赢家是:application/x-font-woff - 希望它有所帮助!
@busticated已将其更改为application/font-woff,请参阅http://www.w3.org/TR/WOFF/#appendix-b
“ font”类型现已正式发布http://www.iana.org/assignments/media-types/media-types.xhtml#font
@holger`application/font-woff`非常棒!

3> djsadinoff..:

忽略铬警告.OTF字体没有标准的MIME类型.

font/opentype可能会使警告静音,但这并不能使其成为"正确"的事情.

可以说,你最好不要制作一个,例如使用"application/x-opentype",因为至少"application"是注册的内容类型,而"font"不是.

更新:OTF仍然存在问题,但WOFF 在2013年1月增加了IANA MIME类型的application/font-woff.

更新2:OTF已经增长了MIME类型: application/font-sfnt 2013年3月.此类型也适用于.ttf


没有mime类型:"注意:由于TrueType,OpenType和WOFF字体没有定义的MIME类型,因此不会考虑指定文件的MIME类型." http://developer.mozilla.org/en/css/@font-face.不要组成新的顶级mime类型,请使用x-代替:http://tools.ietf.org/html/rfc2045#section-5 - djsadinoff 3分钟前编辑
有趣.你有任何参考支持吗?

4> Steve Eynon..:

自2017年2月起,RFC 8081将顶级font媒体类型下的字体的所有MIME类型分组.我原始发布的旧MIME类型现已列为已弃用.

IANA列出的字体类型现在是:

.otf -> 字体/ OTF

.sfnt -> 字体/ SFNT

.ttf -> 字体/ TTF

.woff -> 字体WOFF

.woff2 -> 字体/ woff2

其他非标准字体格式保留原样:

.eot -> application/vnd.ms-fontobject(自2005年12月起)

.svg -> image/svg + xml(自2011年8月起)


[过时的原帖]

由于网络上关于网络字体的MIME类型仍然存在很多混淆,我想我会给出一个当前答案,包括有效日期,以及支持IANA和W3C的链接.

以下是Web字体的官方MIME类型:

.eot -> application/vnd.ms-fontobject(自2005年12月起)

.otf -> application/font-sfnt(自2013年3月起)

.svg -> image/svg + xml(自2011年8月起)

.ttf -> application/font-sfnt(自2013年3月起)

.woff -> application/font-woff(自2013年1月起)

.woff2 -> font/woff2(由W3C于2016年3月提出)

请注意font/XXX,在WOFF v2的提案中,W3C支持将所有上述内容更改为MIME类型.这是由互联网工程任务组(IETF)在字体顶级类型下跟踪的,并且在2017年2月被批准为RFC状态(参见RFC 8081),因此它可能都会发生变化!

虽然对Web服务器的话题,值得一提的是HTTP响应可能gzip(或者压缩)上述所有字体格式,除了.woff.woff2这些已经严重压缩.

我在(Fantom)BedSheet的Web字体的MIME类型中说了更多.


在SO上自动检测重复的帖子,您可能会删除*两个*帖子.如果您有有用的信息要发布,那么您应该考虑询问和回答您自己的问题.

5> Anthony G - ..:

作为计算中两个难点之一的具体实例,有趣的是看到这个问题的答案在最初发布以来是如何改变的.值得庆幸的是,这些权力给混乱带来了秩序:


在今年2月(2017年),W3C发布了标准跟踪 RFC 8081:"字体"顶级媒体类型,它极大地简化了字体文件的相应媒体类型:

此备忘录用于注册和记录"字体"顶级媒体类型,在该类型下可以注册字体的表示格式的子类型.该文件还用作一组预期子类型的注册申请,这些子类型代表已经使用的一些现有子类型,并且当前通过其单独的注册在"申请"树下注册.

它是一个非常易读的文档,它描述了历史背景(缺少"字体格式的注册"),这引起了媒体类型和子类型的混乱混合.随着(相对)近期可下载网络字体的普及,W3C认识到需要"直观的顶级字体类型".他们想出了是... font.

因此,IANA已更新其媒体类型的官方列表,其中包含font媒体类型及其当前识别的所有子类型:

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

这里希望这是这个问题需要的最后答案.


安东尼,除了我的帖子,这是另一个很好的资源.谢谢你在这里分享!

6> 小智..:

关于在Debian Linux和OS X Leopard和Snow Leopard上测试的Apache 2.2 VirtualHosting和mod_mime的FWIW:

如果您有VirtualHost配置,则需要通过AddType指令添加类型,如下所示,至少在配置的底部如下:

....
   AddType font/opentype .otf
   AddType font/ttf .ttf

针对Chrome Unstable/Trunk和Safari WebKit Nightly进行了测试,消除了ttf和otf字体类型的mime八位字节流警告.

注意:.htaccess在处理VirtualHosting时没有效果.如果您正在为多个站点开发,那么您将使用VirtualHosting开发,并且每个配置都需要添加这些AddType.



7> Aaron..:

我刚刚对IANA官方列表进行了一些研究.我相信这里给出的答案'font/xxx'是不正确的,因为MIME标准中没有'font'类型.

根据RFC和IANA,这似乎是截至2013年5月的当前状态:

这三个是官方的,由IANA分配:

svg为"image/svg + xml"

woff为"application/font-woff"

eot as"application/vnd.ms-fontobject"

这些不是官方/分配的,因此必须使用'x-'语法:

ttf为"application/x-font-ttf"

otf为"application/x-font-opentype"

application/font-woff看起来是新的,也许只是2013年1月以来的官方版本.所以"application/x-font-woff"在短期内可能更安全/更兼容.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有