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

我无法找到指定任何和/或每种文件格式的正确MIME类型的规范源。 我发现的所有来源似乎都与对方和/或IANA MIME类型的RFC及其关联列表相矛盾。

尽管我对.otf (OpenType)和.ttf (TrueType)文件类型特别感兴趣 ,但理想的答案将为确定各种字体文件格式的MIME类型提供规范化资源,例如字体文件维基百科页面的部分: 文件格式列表 。 但是,鉴于我找不到这样的资源,似乎完全有可能不存在这样的标准参考。

我想进一步澄清,我不是在寻找工作的MIME类型,而是为了规范的MIME类型。 所选字体的正确MIME类型的答案表明font/opentype可用于.otf文件。 然而,由于最高票数的答案(by @djsadinoff)解释说, font不是有效的IANA内容类型,并且这不能是正确的MIME类型。


对于你的问题你可能不知道字体类型的事实。 使用此链接字体MIME类型。

roc报道了Web Fonts之战,其中的短版本是非IE浏览器是否应该支持字体的DRM格式。 (也许他们是否可以支持TrueType和OpenType)。我真的不认为我们应该支持字体的DRM格式。 它似乎会在网络上设置一个不好的先例,如果供应商不强制执行正确的事情,可能会使供应商承担责任,并且会使作者的事情复杂化。

W3C为EOT工作组制定了章程草案; EOT(Embedded OpenType)是微软正在倡导的DRM格式。 我不知道EOT是如何引领Web发挥其全部潜力的,但我们会看到它会发生什么。

除了格式问题,可能值得考虑为字体引入MIME类型。 (如果在这一点上对于实现来说太迟了,可能已经太晚了。)好处在于任意文件(比如文本/ html文件)不会被解释为字体。 不利之处在于它使得作者稍微难一些,因为他们必须确保他们正确地标记它。 (在Web上的图像(SVG除外)和JavaScript没有检查资源是否具有正确的MIME类型,对于浏览器嗅探映像签名的图像以及从脚本元素加载的内容只是简单地执行(实际上并不太好) 。)

鉴于支持@ font-face将在Opera,Safari和Firefox中很快出货,这需要尽快确定。 可能在相关的MIME类型通过IETF标准化之前。 另一个复杂因素是OpenType和TrueType可以携带otf和ttf作为扩展,操作系统可以很好地处理它。 对于两者都有一个MIME类型可能可以工作,就像XHTML和SVG都可以使用text / xml一样。


你的答案在规格中。

4.5.1。 八位字节流子类型

“八位字节流”子类型用于表示一个正文包含任意的二进制数据。

同样在同一文件的第4页

(5)   application -- some other kind of data, typically
      either uninterpreted binary data or information to be
      processed by an application.  The subtype "octet-
      stream" is to be used in the case of uninterpreted
      binary data, in which case the simplest recommended
      action

我仍然不确定这个文件是否是二进制数据,所以我使用linux file()命令检查了MIME类型。

    $ file --mime-type 
    Days-webfont.ttf: application/octet-stream

你去那里是一个十分清晰的八位字节流!

我仍然有一些怀疑,所以我想要更多的资源。 浏览器如何解释这一点? 这是Mozilla必须说的...

注意:由于TrueType,OpenType和Web开放文件格式(WOFF)字体没有定义的MIME类型,因此不考虑指定的文件的MIME类型。

有趣的Mozilla说, 没有为.ttf .otf或.woff 定义的MIME类型

Mozilla也有一些资源可以帮助你

确定您的内容的正确MIME类型

如何为您的内容确定正确的MIME类型

您可以采取几个步骤来确定要用于内容的正确MIME类型值。

如果您的内容是使用供应商的软件应用程序创建的,请阅读供应商的>文档以查看不同媒体类型应报​​告的MIME类型。

查看IANA | 包含所有注册的MIME类型的MIME媒体类型注册表。

如果使用Netscape Gecko中的插件显示媒体类型,请安装插件,然后查看帮助 - >关于插件菜单,查看与>媒体类型相关联的MIME类型。

在FILExt或文件扩展名引用中搜索文件扩展名,以查看与该扩展名关联的MIME>类型。

我不建议你去FILE文件页面或文件扩展名参考他们不做任何文件()不能在bash中做什么。

通过搜索文档,我发现了几乎适合该法案的各种应用子类型; vnd.ms-fontobject,但这只适用于.eot文件font-tdpfr,但这仅适用于.pfr文件。

所以看起来规格没有指定

我相信。 所以我想你的规范资源会比较file()的输出和规范中的内容。


正如其中一条评论所述:

更好的MIME类型是“application / x-font-opentype”或“application / octet-stream”。 第一个基本上是“这个名字未注册的mimetype”,第二个只是“二进制数据”

其中任何一种在技术上都是正确的,因为第一种是非官方类型的可接受的MIME类型格式,第二种是不具有更具体官方MIME类型的二进制数据的通用MIME类型。 我通过RFC2046验证了这一说法,并且似乎有效。 在一个人变成官方之前,最正确的方法是对非官方类型使用可接受的格式,或者使用通用类型。

链接地址: http://www.djcxy.com/p/8237.html

上一篇: What is the correct MIME type for a font file?

下一篇: Correct Apache AddType directives for font MIME types