在网上搜索,我找到了大量关于字体的正确MIME类型的不同建议,但我还没有尝试任何可以解决Chrome警告的MIME类型,如下所示:
资源被解释为字体但以MIME类型font / otf
传输
字体是OTF。
到目前为止,我已尝试过以下MIME类型
答案 0 :(得分:195)
在Apache和IIS服务器上,可以使用多种字体格式设置MIME类型。 I've traditionally had luck以下内容:
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等。
更新2013年8月16日:WOFF是formally registered at IANA on January 3, 2013和Webkit has been updated on March 5, 2013,在最新版本中获取此更新的浏览器将开始针对服务器MIME类型发出警告旧的x-font-woff声明。由于警告只是令人讨厌,我建议立即切换到批准的MIME类型。在理想的世界中,警告会及时解决。
更新2015年2月26日: WOFF2现在是W3C编辑的草案中提出的mime类型。它可能会在最近的进度时间表之后在明年(可能在2016年底)提交给IANA。以及SFNT,Google Web Fonts with their sfntly java library的骨干表引用中使用的可伸缩/样条容器字体格式已经registered as a mime type with IANA,并且可以根据个人需要添加到此列表中。
更新2017年10月4日:我们可以跟随WOFF2格式here的进展,大多数现代浏览器都支持该格式成功。同样,我们可以按照IETF的“字体”顶级媒体类型评论请求(RFC)tracker和document,了解最新的提议字体类型以供审批。
如果您希望在CSS中以正确的顺序嵌入字体,请访问this article。但同样,我对以下顺序感到满意:
@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
答案 1 :(得分:128)
尝试使用“font / opentype”。
答案 2 :(得分:123)
忽略镀铬警告。 OTF字体没有标准的MIME类型。
font / opentype可能会使警告静音,但这并不能使它成为“正确”的事情。
可以说,你最好还是做一个,例如使用“application / x-opentype”,因为至少“application”是注册的内容类型,而“font”不是。
更新:OTF仍然存在问题,但WOFF在2013年1月增加了application/font-woff的IANA MIME类型。
更新2:OTF增加了MIME类型:application/font-sfnt 2013年3月。此类型也适用于.ttf
答案 3 :(得分:64)
自2017年2月起,RFC 8081将顶级font
媒体类型下的字体的所有MIME类型分组。我原始发布的旧MIME类型现已列为已弃用。
Font types as listed by IANA现在是:
.otf ->
font/otf .sfnt ->
font/sfnt .ttf ->
font/ttf .woff ->
font-woff .woff2 ->
font/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
的MIME类型,这在W3C的WOFF v2提案中得到了支持。这是由互联网工程任务组(IETF)在The font Top Level Type下跟踪的,并且在2017年2月被批准为RFC状态(请参阅RFC 8081),因此它可能都会发生变化!
关于网络服务器的主题,值得一提的是HTTP响应可以gzip
(或以其他方式压缩)除.woff
之外的所有上述字体格式。已经严重压缩的.woff2
。
答案 4 :(得分:9)
作为计算中two hard things之一的特定实例,看看自最初发布此问题以来此问题的答案是如何变化的,这很有意思。值得庆幸的是,这些权力为混乱带来了秩序:
今年2月(2017年),W3C发布了 Standards Track RFC 8081: The "font" Top-Level Media Type,大大简化了字体文件的相应媒体类型:
此备忘录用于注册和记录“font”顶级媒体类型, 可以注册字体表示格式的子类型。 本文档还可作为一组注册申请 预期的亚型,代表一些现有的亚型 已经在使用,并且目前在“应用程序”树下注册 他们单独注册。
这是一个非常易读的文档,它描述了历史背景(缺少“字体格式的注册”),这引起了媒体类型和子类型的混乱混合。随着(相对)近期可下载网络字体的普及,W3C认识到需要“直观的顶级字体类型”。他们想出的是...... font
。
因此,IANA已将official list of Media types更新为font
媒体类型及其当前识别的所有子类型:
collection font/collection
otf font/otf
sfnt font/sfnt
ttf font/ttf
woff font/woff
woff2 font/woff2
这里希望这是这个问题需要的最后答案。
答案 5 :(得分:5)
关于在Debian Linux和OS X Leopard和Snow Leopard上测试的Apache 2.2 VirtualHosting和mod_mime的FWIW:
如果您有VirtualHost配置,您将需要通过AddType指令添加类型,如下所示,至少在配置的底部如下:
....
AddType font/opentype .otf
AddType font/ttf .ttf
</VirtualHost>
针对Chrome Unstable / Trunk和Safari WebKit Nightly进行了测试,消除了ttf和otf字体类型的mime八位字节流警告。
注意:.htaccess在处理VirtualHosting时效果不佳。如果您正在为多个站点开发,那么您将使用VirtualHosting开发,并且每个配置都需要添加这些AddType。
答案 6 :(得分:5)
我刚刚对IANA official list做了一些研究。我相信这里给出的答案'font / xxx'是不正确的,因为MIME标准中没有'font'类型。
基于RFC和IANA,这似乎是截至2013年5月的当前状态:
这三个是官方的,由IANA分配:
这些并非官方/已分配,因此必须使用'x-'语法:
application / font-woff看起来很新,也许只是自2013年1月以来的正式版。所以“application / x-font-woff”在短期内可能更安全/更兼容。
答案 7 :(得分:4)
这是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
答案 8 :(得分:4)
自2013年3月起{em> .otf 的IANA.ORG recommends:
的 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)
请参阅more...
答案 9 :(得分:1)
以下内容可用于电子书空间:
application/vnd.ms-opentype
我认为网络也是如此。
答案 10 :(得分:1)
woff的application / font-woff: http://www.iana.org/assignments/media-types/application/font-woff
答案 11 :(得分:1)
截至2017年2月,RFC 8081添加了字体/ *媒体类型,这些类型也列在IANA Media Types列表中。 font/otf
位于此列表中。
答案 12 :(得分:0)
也许这会对某人有所帮助。我在IIS 7上看到.ttf
已经是一个已知的mime类型。它被配置为:
application/octet-stream
所以我刚刚添加了所有CSS字体类型(.oet
,.svg
,.ttf
,.woff
),IIS开始为它们提供服务。 Chrome开发工具也不会抱怨重新解释类型。
干杯, 迈克尔
答案 13 :(得分:-1)
将Chrome 中的警告静音的一种方法是更新Chrome,然后确保您的mime类型是其中之一:
"font/ttf"
"font/opentype"
"application/font-woff"
"application/x-font-type1"
"application/x-font-ttf"
"application/x-truetype-font"
此列表是根据Bug 111418 at webkit.org找到的补丁。
同一个补丁将消息从“警告”降级为“日志”,因此只需将Chrome升级到2013年3月发布的任何版本,就可以摆脱黄色三角形。
由于问题是关于静音Chrome警告,并且由于某些原因,人们可能会坚持使用旧的Chrome版本,因此我认为这值得添加。