46

我正在使用 @font-face 嵌入字体(感谢Paul Irish)。在尝试修复 Chrome 关于 woff 字体错误 MIME 类型的警告时,我发现了大量相互矛盾的建议。

每个人似乎都同意 .eot 字体(对于 IE 6-8?)应该使用

AddType application/vnd.ms-fontobject .eot

对于 .ttf 字体(较旧的非 IE 浏览器?)我见过

AddType application/x-font-ttf        .ttf
AddType application/octet-stream      .ttf
AddType font/truetype                 .ttf
AddType font/ttf                      .ttf

对于 .woff 字体(新标准?)我见过

AddType application/font-wof          .woff
AddType application/x-font-woff       .woff
AddType application/x-woff            .woff

我知道 woff 的正确 MIME 类型是 application/font-woff,但在标准正式发布之前,Chrome 可以理解 application/x-font-woff

我意识到我已经回答了一半的问题,但问题是:对于字体应该使用哪些 MIME 类型,是否有任何权威指导或进一步的建议?

更新(以防它对其他人有任何帮助):由于似乎没有任何权威性,我决定在我的 .htaccess 中使用以下字体 MIME 类型(至少让 Chrome 满意):

AddType application/vnd.ms-fontobject .eot
AddType application/x-font-ttf        .ttf
AddType application/x-font-woff       .woff
4

6 回答 6

77

我意识到这个问题已经过时了,但是对于任何想要快速复制/粘贴以将字体 MIME 类型添加到他们的 .htaccess 的人来说:

<IfModule mod_mime.c>
    AddType application/vnd.ms-fontobject    .eot
    AddType application/x-font-opentype      .otf
    AddType image/svg+xml                    .svg
    AddType application/x-font-ttf           .ttf
    AddType application/font-woff            .woff
    AddType application/font-woff2           .woff2
</IfModule>
于 2013-08-24T00:20:05.073 回答
7

我刚刚对IANA 官方列表做了一些研究。这似乎是截至 2013 年 5 月的当前状态:

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

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

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

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

似乎“字体”类型不存在,所以任何时候你看到“字体/xxx”的类型都是假的。可能允许使用“x-font/xxx”,但不确定。IIS8 附带了几个这样的条目。不确定 MS 是否认为这些“字体/xxx”是兼容性所必需的,或者他们只是不阅读 RFC :-)

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

于 2013-05-09T06:22:07.753 回答
4

通常,MIME 类型来自 RFC。您在IANA 网站上有一个详尽的列表,但没有一个提到字体扩展。此外,描述 WOFF 格式的文档是草稿,并不涉及要使用的 mime 类型。目前似乎没有关于该主题的可靠参考资料。

更新

W3C 现在已发布 WOFF 作为建议,并在附录 B中将 MIME 类型定义为application/font-woff. 它也已添加到您现在提到的IANA 网站。-GKFX

于 2011-10-28T09:36:15.067 回答
3

我认为值得一提的是,从 2013 年 3 月起,IANA赋予.otf.ttf扩展 MIME 类型为application/font-sfnt

有关官方 MIME 类型的完整和最新列表,请参阅我对字体的正确 MIME 类型的回答

于 2013-12-21T20:39:14.640 回答
2

在 2019 年,您可以使用:

AddType font/otf .otf
AddType font/ttf .ttf
AddType font/woff .woff
AddType font/woff2 .woff2
AddType application/vnd.ms-fontobject .eot
于 2019-12-12T12:42:20.120 回答
0

这是在 apache 中缓存所有字体类型的示例(在 Google Page Speed 上测试):

AddType application/font-sfnt            otf ttf
AddType application/font-woff            woff
AddType application/font-woff2           woff2
AddType application/vnd.ms-fontobject    eot


ExpiresByType application/font-woff "access plus 1 month" 
ExpiresByType application/font-woff2 "access plus 1 month"
ExpiresByType application/font-sfnt "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
于 2021-04-08T12:27:32.903 回答