在网上搜索,我发现了一堆不同的建议,什么正确的MIME类型的字体是,但我还没有尝试任何MIME类型,使我摆脱Chrome警告,如以下:
资源解释为字体,但使用MIME类型font/otf传输
字体是OTF。
到目前为止,我已经尝试了以下MIME类型
字体/传递 应用程序/ font-otf 应用程序/字体 应用程序/传递 应用程序/八进制 应用程序/ x-font-otf application/x-font-TrueType(我知道这不是truetype,但有一个来源引用了OTF)
在网上搜索,我发现了一堆不同的建议,什么正确的MIME类型的字体是,但我还没有尝试任何MIME类型,使我摆脱Chrome警告,如以下:
资源解释为字体,但使用MIME类型font/otf传输
字体是OTF。
到目前为止,我已经尝试了以下MIME类型
字体/传递 应用程序/ font-otf 应用程序/字体 应用程序/传递 应用程序/八进制 应用程序/ x-font-otf application/x-font-TrueType(我知道这不是truetype,但有一个来源引用了OTF)
当前回答
作为计算中两大难题之一的一个具体例子,看看这个问题的答案自最初发布以来发生了怎样的变化是很有趣的。值得庆幸的是,当权者为混乱带来了秩序:
今年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
希望这是这个问题需要的最后一个答案。
其他回答
尝试使用“font/opentype”。
忽略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
关于Apache 2.2 VirtualHosting和mod_mime在Debian Linux和OS X Leopard和Snow Leopard上测试的FWIW:
如果你有一个VirtualHost配置,你会希望通过AddType指令添加类型,至少在配置的底部,如下所示:
....
AddType font/opentype .otf
AddType font/ttf .ttf
</VirtualHost>
在Chrome不稳定/Trunk和Safari WebKit Nightly上测试,消除了ttf和otf字体类型的mime八字节流警告。
注意:.htaccess在处理VirtualHosting时无效。如果你正在为几个网站开发,你将使用VirtualHosting开发,每个配置都需要这些AddType添加。
Application /font-woff for woff: http://www.iana.org/assignments/media-types/application/font-woff
NGINX溶液
file
/usr/local/nginx/conf/mime.types
add
font/ttf ttf;
font/opentype otf;
application/font-woff woff2;
application/font-woff woff;
application/vnd.ms-fontobject eot;
删除
application/octet-stream eot;
Ref
http://drawingablank.me/blog/font-mime-types-in-nginx.html