OTF字体的正确MIME类型是什么?

264

在搜索网络时,我发现关于字体正确的MIME类型有很多不同的建议,但是我尝试过的每种MIME类型都无法解决Chrome浏览器的警告,如下所示:

资源被解释为字体,但使用的MIME类型是font/otf

这个字体是OTF格式的。

迄今为止,我尝试了以下这些MIME类型:

  • font/otf
  • application/font-otf
  • application/font
  • application/otf
  • application/octet-stream
  • application/x-font-otf
  • application/x-font-TrueType(我知道它不是TrueType,但一些来源引用它来表示OTF)

3
你实际上应该如何编写这个标题?我不太确定该怎么做。感谢你能提供的任何帮助。 - Josh Smith
1
@Josh:如果你是通过代码提供字体,你需要将“content-type”头设置为“font/opentype”(如果你使用的是OTF,就像我在问题中所述),但如果你只是指向一个物理字体文件,那么在Web服务器中设置MIME类型可能更容易。我不知道你使用的Web服务器是什么,所以请在Google上搜索yourserver + mime types或在SO上发布一个新问题来描述你的问题。 - David Hedlund
2
标题错误,应该是“如何在Chrome中消除‘资源被解释为字体’的警告”。 - djsadinoff
2
@djs:已授权!你知道,如果我能找到一种方法让Chrome记住我想要在控制台中列出日志消息和错误,但不是警告,那么我第一次就可能永远不会问这个问题了。 - David Hedlund
Chrome正在警告我们它正在执行我们要求的操作。如果您使用了.BMP文件并且成功地找到了用于字形的位图,我宁愿在那时看到一个警告! - cardiff space man
14个回答

2
截至2017年2月,RFC 8081添加了font/*媒体类型,这些类型也列在IANA媒体类型列表中。font/otf在此列表中。

2
以下内容可用于电子书领域: application/vnd.ms-opentype 我想网页应该也是一样的。

1
也许这会对某些人有所帮助。我在IIS 7上看到.ttf已经是一个已知的MIME类型。它被配置为:
application/octet-stream

所以我刚刚为所有 CSS 字体类型(.oet.svg.ttf.woff)添加了这个,然后 IIS 开始提供它们。Chrome dev 工具也不会抱怨重新解释类型。

干杯, Michael


1
application/octet-stream 更像是一堆通用的字节,而不是一个“已知类型”。 :) 浏览器抱怨被提供了这种类型,因为它没有关于如何解释这些内容的信息。 - cHao

-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,所以我认为这值得添加。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接