字体的正确MIME类型


Answers

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

根据互联网工程任务组,他在这里维护关于多用途互联网邮件扩展(MIME类型)的初始文档: http://tools.ietf.org/html/rfc2045#section-5http://tools.ietf.org/html/rfc2045#section-5 ......它在具体说明中说:

预计通过创建这些初始类型的新子类型可以实现对更大的支持类型集合的增加。将来,只有通过此标准的标准跟踪扩展才能定义更多的顶级类型。如果出于任何原因使用另一个顶级类型,则必须给它一个以“X-”开头的名称来表示其非标准状态,并避免与将来的官方名称发生潜在冲突。

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

更新2013年8月16日: WOFF于2013 年1月3日在IANA正式注册, Webkit已于 2013 年3月5日更新,而在其最新版本中采购此更新的浏览器将开始发布有关旧服务器MIME类型的警告x-font-woff声明。 由于警告只是烦人的,我建议马上切换到批准的MIME类型。 在理想的世界里,警告会及时解决。

更新2015年2月26日: WOFF2现在在W3C编辑草案中提出了mime类型。 在最近的进展时间表之后,它可能会在明年(可能在2016年底之前)提交给IANA。 SFNT是一种可扩展/样条容器字体格式,可用于Google Web Fonts的骨干表格引用及其轻松的java库 ,并且已被注册为具有IANA的MIME类型,并且可以根据个人需要添加到此列表中。

更新2017年10月4日:我们可以在here跟随WOFF2格式的进展,大多数现代浏览器都支持这种格式。 同样,我们可以按照IETF的“字体”顶级媒体类型请求注释(RFC) tracker和关于最新提议字体类型的document进行批准。

对于那些希望在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
Question

搜索网页时,我发现了一些关于字体的适当MIME类型的不同建议,但我还没有尝试使用任何MIME类型,以避免Chrome警告,如下所示:

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

该字体是一个OTF。

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

  • 字体/ OTF
  • 应用/字体OTF
  • 应用/字体
  • 应用程序/ OTF
  • 应用/八位字节流
  • 应用程序/ x-字体OTF
  • 应用程序/ x-font-TrueType(我知道它不是truetype,但有一个来源引用OTF)



由于网络上仍存在很多关于网络字体的MIME类型的混淆,我想我会给出一个最新的答案,并附上生效日期,并支持与IANA和W3C的链接。

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

请注意,W3C在其提案WOFF v2中支持将所有上述内容更改为MIME类型的font/XXX 。 互联网工程任务组(IETF)正在根据字体顶级类型对此进行跟踪,并于2017年2月获得了RFC状态的批准(请参阅document ),以便它们都可以更改!

关于Web服务器的话题,值得一提的是,HTTP响应可以gzip (或者压缩)除了已经被高度压缩的.woff.woff2以外的所有字体格式。

用(Fantom)BedSheet在网页字体的MIME类型中说得更多。




这是NGINX解决方案

文件

/usr/local/nginx/conf/mime.types

font/ttf                      ttf;
font/opentype                 otf;
application/font-woff         woff2;
application/font-woff         woff;
application/vnd.ms-fontobject eot;

去掉

application/octet-stream        eot;

感谢Mike Fulcher

http://drawingablank.me/blog/font-mime-types-in-nginx.html




一种方法来消除Chrome的警告将更新Chrome,然后确保您的MIME类型是其中之一:

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

此列表是根据webkit.org上的Bug 111418找到的补丁列表。

同一个补丁将邮件从“警告”降级为“日志”,因此只要将Chrome升级到2013年3月发布的任何版本,就会摆脱黄色三角形。

由于该问题是关于消除Chrome警告的,因此无论出于何种原因,人们可能会坚持使用旧的Chrome版本,我认为这值得添加。




也许这会帮助别人。 我看到在IIS 7上.ttf已经是一种已知的MIME类型。 它的配置如下:

application/octet-stream

所以我只是补充说,所有的CSS字体类型( .oet.svg.ttf.woff )和IIS都开始为它们提供服务。 Chrome开发工具也不会抱怨重新解释类型。

干杯,迈克尔




以下内容可以在电子书空间中使用:

application/vnd.ms-opentype

我会想象它对网络来说是一样的。




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

基于RFC和IANA,这似乎是截至2013年5月该剧的最新状态:

这三个是正式的,由IANA分配:

  • svg as“image / svg + xml”
  • woff作为“application / font-woff”
  • eot as“application / vnd.ms-fontobject”

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

  • ttf as“application / x-font-ttf”
  • otf as“application / x-font-opentype”

应用程序/ font-woff似乎是新的,也许只是自2013年1月以来才正式发布。因此,“application / x-font-woff”可能在短期内更安全/更兼容。