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

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

字体是OTF。

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

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


当前回答

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

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

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

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

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

其他回答

一种方法来沉默这个警告从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版本,我认为这一点值得补充。

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

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

这三个是IANA官方指定的:

svg as " svg+xml" 像“应用程序/打字”一样工作 我们称之为“应用程序/vnd.m -fontobject”

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

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

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

尝试使用“font/opentype”。

作为计算中两大难题之一的一个具体例子,看看这个问题的答案自最初发布以来发生了怎样的变化是很有趣的。值得庆幸的是,当权者为混乱带来了秩序:


今年2月(2017年),W3C发布了标准跟踪RFC 8081:“字体”顶级媒体类型,极大地简化了字体文件的适当媒体类型:

本备忘录用于注册和记录“字体”顶级媒体类型, 字体表示格式的子类型可以在该子类型下注册。 本文件亦作为一套 预期的子类型,它们代表了一些现有的子类型 已经在使用,并且目前在“应用程序”树下注册 他们各自的注册。

这是一份相当可读的文档,它描述了历史背景(缺乏“字体格式注册”),这导致了媒体类型和子类型的混淆。随着(相对而言)可下载的网页字体的流行,W3C意识到需要一种“直观的顶级字体类型”。他们想出的是……字体。

因此,IANA已经更新了他们的官方媒体类型列表,包括字体媒体类型及其目前识别的所有子类型:

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

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

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

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

.otf ->字体 .sfnt ->字体/sfnt .ttf ->字体 .woff ->字体/woff woff2 ->字体

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

.eot -> application/vnd。ms-fontobject(从2005年12月开始) .svg -> image/svg+xml(从2011年8月开始)


[过时的原帖]

由于网络上仍然有很多关于web字体的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 ->字体/woff2(由W3C于2016年3月提出)

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

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

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