正确的MIMEtypes的字体

在网上search,我发现对于字体的正确的MIMEtypes有不同的build议,但我还没有尝试任何MIMEtypes,摆脱了Chrome的警告,如下所示:

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

字体是一个OTF。

到目前为止,我已经尝试了以下MIMEtypes

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

尝试使用“font / opentype”。

在Apache和IIS服务器上,有许多可以设置MIMEtypes的字体格式。 我传统上有以下几点运气 :

 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) 

根据互联网工程任务组谁保持有关多用途互联网邮件扩展(MIMEtypes)的初始文件在这里: http : //tools.ietf.org/html/rfc2045#section-5 …它在具体说:

可以预期,通过创build这些初始types的新的子types,一般可以实现对更大的支持types集合的增加。将来,只有通过对该标准的标准跟踪扩展才能定义更多的顶级types。如果因为某种原因要使用另一种顶级types,则必须给它一个以“X-”开头的名称来表示其非标准状态,并避免与未来官方名称的潜在冲突。

事实上,随着时间的推移,随着标准被创build和接受,额外的MIMEtypes被添加,因此,我们看到了供应商特定的MIMEtypes的例子,例如vnd.ms-fontobject等等。

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

更新2015年2月26日: WOFF2现在在W3C编辑草案与拟议的MIMEtypes。 在最近的进展时间表之后,它可能会在明年(可能在2016年底)提交给IANA。 SFNT,也就是Google Web Fonts骨干表格引用中使用的可缩放/样条容器字体格式,并且已经被注册为IANA的MIMEtypes,并且可以根据个人需要添加到这个列表中。

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


对于那些希望在您的CSS中以正确的顺序embedded字体,请访问这篇文章 。 但是,我再次运气如下:

 @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 

忽略chrome警告。 OTF字体没有标准的MIMEtypes。

font / opentype可能会使警告无效,但这并不是“正确”的事情。

可以说,你最好使用“application / x-opentype”,因为至less“application”是一个已注册的内容types,而“font”则不是。

更新:OTF仍然是一个问题,但WOFF在2013年1月增加了一个IANA MIMEtypes的application / font-woff 。

更新2:OTF在2013年3月发展了一种MIMEtypes: application / font-sfnt 。这种types也适用于.ttf

由于networking上对于networking字体的MIMEtypes仍然存在很多混淆,所以我想给出一个最新的答案,并附上有效的date,并支持与IANA和W3C的链接。

以下是Web字体的官方MIMEtypes:

  • .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月提出)

请注意,W3C在其WOFF v2提案中支持将所有上述内容更改为MIMEtypes的font/XXX 。 互联网工程任务组(IETF)在字体顶层types下正在跟踪这个数据,并在2017年2月被批准为RFC状态(见RFC 8081 ),所以它可能全部改变了!

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

(Fantom)BedSheet的Web字体的MIMEtypes更多。

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

如果你有一个VirtualHostconfiguration,你至less需要在configuration底部按如下方式通过AddType指令添加types,如下所示:

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

针对Chrome Unstable / Trunk和Safari WebKit Nightly进行了testing,消除了ttf和otf字体types的MIME八位字节stream警告。

注意:.htaccess在处理VirtualHosting时没有任何影响。 如果你正在开发几个网站,你将使用VirtualHosting开发,每个configuration将需要这些AddType的添加。

我刚刚在IANA官方名单上做了一些调查。 我相信这里给出的答案“font / xxx”是不正确的,因为在MIME标准中没有“字体”types。

基于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”可能在短期内更安全/更兼容。

这是NGINX解决scheme

文件

 /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

作为计算中两个难点之一的具体实例,从最初发布这个问题之后,看到这个问题的答案是如何改变的很有意思。 值得庆幸的是,这些权力已经使秩序混乱:


在今年二月(2017年),W3C发布了Standards Track RFC 8081:“字体”顶层媒体types ,它大大简化了字体文件的适当媒体types:

本备忘录用于注册和logging“字体”顶级媒体types,在此types下可以注册字体表示格式的子types。 本文件还作为一组拟定的亚型的注册申请,这些亚型代表已经使用的一些现有亚型,目前通过单独注册在“申请”目录下注册。

这是一个相当可读的文件,它描述了历史背景(缺less“字体格式的注册” ),导致了媒体types和子types的混淆。 随着可下载networking字体(相对)近期兴起,W3C认识到需要“直观的顶级字体types” 。 他们想出的是… font

因此,IANA已经使用font媒体types及其目前认可的所有子types更新了媒体types的正式列表 :

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

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

从2013年3月起, IANA.ORGbuild议使用.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) 

查看更多…

woff的应用程序/ font-woff: http ://www.iana.org/assignments/media-types/application/font-woff

也许这会帮助别人。 我看到在IIS 7上.ttf已经是一个已知的MIMEtypes。 它被configuration为:

 application/octet-stream 

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

干杯,迈克尔

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

application/vnd.ms-opentype

我会想象,这是相同的networking。

截至2017年2月, RFC 8081添加了IANA媒体types列表中列出的字体/ 媒体types 。 font/otf在这个列表中。

一个方法来消除这个来自Chrome的警告将更新Chrome,然后确保您的MIMEtypes是其中之一:

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

该列表是根据webkit.org上的Bug 111418find的补丁。

同一个修补程序将信息从“警告”降级为“日志”,因此只要将Chrome升级到2013年3月发布的任何版本,都将消除黄色三angular形。

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