适合OTF字体的MIME类型

在网上搜索,我发现了一堆不同的建议,什么正确的MIME类型的字体是,但我还没有尝试任何MIME类型,使我摆脱Chrome警告,如以下:

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

字体是OTF。

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

  • 字体/传递
  • 应用程序/ font-otf
  • 应用程序/字体
  • 应用程序/传递
  • 应用程序/八进制
  • 应用程序/ x-font-otf
  • application/x-font-TrueType(我知道这不是truetype,但有一个来源引用了OTF)
226229 次浏览

尝试使用“font/opentype”。

忽略chrome警告。OTF字体没有标准的MIME类型。

Font /opentype可以消除警告,但这并不意味着它是“正确的”。要做的事。

可以说,你最好自己编一个,例如“application/x-opentype"因为至少“应用”;是已注册的内容类型,而“;font"不是。

更新:OTF仍然是一个问题,但WOFF增长了IANA MIME类型应用程序/font-woff在2013年1月。

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

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

如果你有一个VirtualHost配置,你会希望通过AddType指令添加类型,至少在配置的底部,如下所示:

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

在Chrome不稳定/Trunk和Safari WebKit Nightly上测试,消除了ttf和otf字体类型的mime八字节流警告。

注意:.htaccess在处理VirtualHosting时无效。如果你正在为几个网站开发,你将使用VirtualHosting开发,每个配置都需要这些AddType添加。

也许这能帮到别人。我在iis7上看到.ttf已经是一个已知的mime类型。它被配置为:

application/octet-stream

所以我只是添加了所有的CSS字体类型(.oet.svg.ttf.woff)和IIS开始服务它们。Chrome开发工具也不会抱怨重新解释类型。

< p >欢呼, 迈克尔。< / p >

在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类型)的初始文档的互联网工程任务组:https://www.rfc-editor.org/rfc/rfc2045#section-5…它具体地说:

预计会对更大的一套进行补充 受支持的类型通常可以通过创建new 这些初始类型的子类型。将来会有更多的顶级类型 只能通过对本标准的标准轨道扩展来定义。 如果出于任何原因要使用另一个顶级类型,那么它必须是 以“X”开头的名字;表示其非标准状态 "

. quot

实际上,随着时间的推移,随着标准的创建和接受,会添加更多的MIME类型,因此我们看到了特定于供应商的MIME类型的例子,例如vnd。Ms-fontobject之类的。

2013年8月16日更新: WOFF是2013年1月3日在IANA正式注册Webkit已于2013年3月5日更新,在其最新版本中来源此更新的浏览器将开始使用旧的x-font-woff声明发出关于服务器MIME类型的警告。由于警告只是恼人的,我建议切换到批准的MIME类型马上。在理想的情况下,这些警告会及时自行消除。

2015年2月26日更新: WOFF2现在在W3C编辑器的草案中,提出了mime类型。根据最近的进展时间表,报告可能在明年(可能在2016年底)提交IANA。还有SFNT,在谷歌Web字体与他们的sfntly java库的主干表引用中使用的可伸缩/样条容器字体格式,已经是在IANA注册为mime类型,也可以根据个人需要添加到此列表中。

我们可以跟随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

以下内容可用于电子书领域:

< p > <代码> 应用程序/ vnd.ms-opentype < /代码> < / p >

我想对于网络也是一样的。

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

根据rfc和IANA,这似乎是截至2013年5月的游戏现状:

这三个是IANA官方指定的:

  • SVG作为“image/ SVG +xml”
  • Woff作为"application/font-woff"
  • Eot作为"application/vnd.ms-fontobject"

这些不是正式的/赋值,所以必须使用'x-'语法:

  • TTF为"application/x-font-ttf"
  • Otf为"application/x-font-opentype"

application/font-woff似乎是新的,可能是2013年1月才正式发布的。所以“application/x-font-woff”可能在短期内更安全/更兼容。

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;

裁判

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

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

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

其他非标准字体格式保留如下:


[过时的原帖]

由于网络上仍然有很多关于web字体的MIME类型的困惑,我想我应该给出一个当前的答案,包括有效日期,并支持到IANA和W3C的链接。

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

请注意,W3C在WOFF v2提案中支持将上述所有类型更改为font/XXX的MIME类型。这是由互联网工程任务组(IETF)在字体为Top Level Type下跟踪的,并在2017年2月被批准为RFC状态(见RFC 8081),所以它可能会全部改变!

当谈到web服务器的话题时,值得一提的是HTTP响应可能会gzip(或以其他方式压缩)上述所有字体格式,除了.woff &.woff2已经被严重压缩。

我在MIME类型的Web字体(Fantom)床单中说了更多。

一种静音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版本,我认为这一点值得补充。

从2013年3月开始,IANA。组织推荐 for .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)

看到更多…

自2017年2月起,RFC 8081添加了字体/*媒体类型,它们也列在IANA媒体类型列表中。font/otf在这个列表中。

作为计算中两件困难的事情的一个特定实例,看到这个问题的答案自最初发布以来发生了怎样的变化是很有趣的。值得庆幸的是,当权者为混乱带来了秩序:


今年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

希望这是这个问题需要的最后一个答案。