260

在网上搜索时,我发现了很多关于字体的正确 MIME 类型的不同建议,但我还没有尝试任何能让我摆脱 Chrome 警告的 MIME 类型,如下所示:

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

字体是 OTF。

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

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

14 回答 14

214

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

根据维护有关多用途 Internet 邮件扩展(MIME 类型)的初始文档的 Internet 工程任务组:https ://www.rfc-editor.org/rfc/rfc2045#section-5 ...它详细说明:

预计对更大的支持类型集的添加通常可以通过创建这些初始类型的新子类型来完成。将来,更多的顶级类型可能仅通过对该标准的标准跟踪扩展来定义. 如果出于任何原因要使用其他顶级类型,则必须为其命名以“X-”开头,以表明其非标准状态,并避免与未来的正式名称发生潜在冲突。

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

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

2015 年 2 月 26 日更新: WOFF2 现在包含在 W3C 编辑草案中,并带有建议的 mime 类型。按照最近的进度时间表,它可能会在明年(可能在 2016 年底)提交给 IANA。与 SFNT 一样,可扩展/样条容器字体格式用于Google Web Fonts 的主干表参考及其 sfntly java 库,并且已在 IANA 注册为 mime 类型,也可以根据个人需要添加到此列表中。

2017 年 10 月 4 日更新:我们可以在这里跟踪 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
于 2012-06-02T17:06:05.823 回答
144

尝试使用“字体/opentype”。

于 2010-05-25T18:28:17.753 回答
125

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

font/opentype 可能会使警告静音,但这并不能使它成为“正确”的做法。

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

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

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

于 2011-01-11T11:25:59.057 回答
99

自 2017 年 2 月起, RFC 8081将字体的所有 MIME 类型归为顶级font媒体类型。我原始帖子中较旧的 MIME 类型现在被列为已弃用。

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

其他非标准字体格式保持不变:


[过时的原始帖子]

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

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

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

在 Web 服务器的主题上,值得一提的是,HTTP 响应可能gzip(或以其他方式压缩)上述所有字体格式,除了已经被高度压缩的.woff& 。.woff2

我在带有 (Fantom) BedSheet 的 Web 字体的 MIME 类型中说了更多。

于 2013-12-21T20:44:43.307 回答
14
于 2017-04-10T11:09:08.483 回答
7

这是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

于 2013-07-10T10:38:56.580 回答
6

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

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

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

针对 Chrome Unstable/Trunk 和 Safari WebKit Nightly 进行了测试,消除了 ttf 和 otf 字体类型的 mime octet-stream 警告。

注意:.htaccess 在处理 VirtualHosting 时效果为零。如果您正在为多个站点进行开发,您将使用 VirtualHosting 开发,并且每个配置都需要添加这些 AddType。

于 2011-02-07T15:33:00.810 回答
6

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

根据 RFC 和 IANA,这似乎是截至 2013 年 5 月的当前状态:

这三个是官方的,由 IANA 分配:

  • svg 为“图像/svg+xml”
  • woff 作为“应用程序/字体-woff”
  • eot 作为“应用程序/vnd.ms-fontobject”

这些不是官方/分配的,因此必须使用“x-”语法:

  • ttf 作为“应用程序/x-font-ttf”
  • otf 作为“应用程序/x-font-opentype”

自 2013 年 1 月以来,application/font-woff 似乎是新的并且可能只是官方的。因此“application/x-font-woff”在短期内可能更安全/更兼容。

于 2013-05-09T09:36:48.370 回答
5

从 2013 年 3 月起, IANA.ORG建议.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)

查看更多...

于 2016-03-31T13:09:05.767 回答
2

以下内容可用于电子书空间:

application/vnd.ms-opentype

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

于 2012-10-23T22:37:49.093 回答
2

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

于 2013-02-14T15:39:43.770 回答
2

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

于 2017-03-31T08:29:23.500 回答
1

也许这会对某人有所帮助。我看到在 IIS 7.ttf上已经是一种已知的 mime 类型。它配置为:

application/octet-stream

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

干杯,迈克尔

于 2012-03-20T16:56:05.253 回答
-1

从 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 版本,我认为这是值得添加的。

于 2014-05-29T17:14:58.263 回答