WOFF字体的Mime类型?


556

WOFF字体应作为哪种mime类型使用?

我提供truetype(ttf)字体font/truetype和opentype(otf )字体font/opentype,但是我找不到WOFF字体的正确格式。

我已经尝试了font/wofffont/webopenfont/webopentype,但是Chrome仍然抱怨:

“资源被解释为字体,但以MIME类型application / octet-stream传输。”

有人知道吗


1
因此,有没有办法阻止Chrome的抱怨?
约翰·米

1
这是Node.js /流星解决方案:npm install mime
Eric Leroy

还要注意其他配置其最后固定在IIS我的问题stackoverflow.com/questions/12458444/...
伊曼

1
font/woff现在是woff的正确MIME类型,Chrome不会抱怨。
MikaelDúiBolinder

Answers:


737

Keith Shaw在2017年6月22日发表的评论的更新:

截至2017年2月,RFC8081是提议的标准。它定义了字体的顶级媒体类型,因此WOFF和WOFF2的标准媒体类型如下:

font/woff

font/woff2


在2011年1月宣布,Chromium将同时承认

application/x-font-woff

作为WOFF的哑剧类型。我知道此更改已在Chrome beta版中出现,并且如果尚未稳定,应该不会太遥远。


8
自Chromium 18.0,2012/08/30起,需要使用application / x-font-woff
cc年轻

6
正如cc young所说,要摆脱Chrome警告:“资源被解释为Font,但已通过MIME类型application / font-woff转移”,您需要使用“ application / x-font-woff”
Jamie

9
如果您使用application / font-woff,Chrome版本24.0.1312.52似乎仍会回复“资源被解释为字体,但已转移...”。似乎现在仍然需要使用“ application / x-font-woff”。
Nicholi

4
根据以下Webkit的提交,将被删除font/woff而改为。同样,该警告已降级为日志消息。 trac.webkit.org/changeset/144763/trunk/Source/WebCore/inspector/…–application/x-font-woffapplication/font-woff
Jorrit Schippers

6
那新的.woff2呢?
松饼人2015年

135

对我来说,接下来的工作是在.htaccess文件中工作。

AddType font/ttf .ttf
AddType font/eot .eot
AddType font/otf .otf
AddType font/woff .woff
AddType font/woff2 .woff2   

2
我无法相信更多的人没有发现这个帮助。这是唯一为我工作的人。
蒂姆·乔伊斯

4
在问这个问题的时候“字型/ WOFF”做工作。任何人都可以确认它现在可以吗?
Nico Burns'2

5
在IIS Express中,您可以在configuration / system.webServer / staticContent下将mimeMap元素添加到web.config中:<mimeMap fileExtension=".woff" mimeType="font/woff" />
shovavnik 2012年

6
从Chrome 18开始,已停止工作。现在application / x-font-woff似乎可以工作了。
cc年轻的

4
作为记录,Google字体使用font/wofffont/woff2
不满的山羊

55

会的application/font-woff

请参阅http://www.w3.org/TR/WOFF/#appendix-b(W3C候选推荐书,2011年8月4日)

http://www.w3.org/2002/06/registering-mediatype.html

从Mozilla CSS字体说明

在Gecko中,除非使用HTTP访问控件来放宽此限制,否则Web字体受相同的域限制(字体文件必须与使用它们的页面位于同一域)。注意:因为没有为TrueType,OpenType和WOFF字体定义MIME类型,所以不考虑指定文件的MIME类型。

来源:https : //developer.mozilla.org/en/CSS/@font-face#Notes


3
但正如Marcel之后指出的那样,Chromium将根据RFC 2048识别application / x-font-woff,直到application / font-woff被接受为止。
jflaflamme 2012年

2
该WOFF规范现在是一个建议,将不会从应用/ FONT-WOFF改变w3.org/TR/WOFF/#appendix-b
史蒂夫工人

26

将字体MIME类型添加到.NET / IIS的参考

通过web.config

<system.webServer>
  <staticContent>
     <!-- remove first in case they are defined in IIS already, which would cause a runtime error -->
     <remove fileExtension=".woff" />
     <remove fileExtension=".woff2" />
     <mimeMap fileExtension=".woff" mimeType="font/woff" />
     <mimeMap fileExtension=".woff2" mimeType="font/woff2" />
  </staticContent>
</system.webServer>

通过IIS管理器

将woff mime类型添加到IIS的屏幕截图



19

截至2017年2月,RFC8081是提议的标准。它定义了字体的顶级媒体类型,因此WOFF和WOFF2的标准媒体类型如下:

font/woff
font/woff2

10

注意:此答案当时是正确的,但在RFC 8081于2017 年发布时已过时

没有fontMIME类型!因此,font/xxx总是错误的。


@UmarFarooqKhawaja这个答案是不完整的,但没有错。在此答案和您的评论之间唯一更改的内容application/font-woff已添加到标准中,取代了诸如application/x-font-woff(实际中实际软件更新是另一回事)之类的内容。没有什么可以使表格的内容类型font/xxx有效。
乔恩·汉纳


5

将以下内容添加到您的.htaccess中

AddType font/woff woff

祝好运




2

我知道这篇文章有点陈旧,但是花了很多时间试图使字体在我的nginx本地计算机上工作,并尝试了很多解决方案后,我终于找到了一个对我有用的解决方案。

location ~* \.(eot|otf|ttf|woff|woff2)$ {
    add_header Access-Control-Allow-Origin *;
}

在括号内,您可以放置​​字体的扩展名或通常要加载的文件。例如,我也将它用于字体和图像(png,jpg等),因此请不要混淆该解决方案仅适用于字体。

只需将其放入您的nginx配置文件中,重新启动,我希望它也对您有用!


1

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

application/octet-stream

所以,我只是说,对于所有的CSS字体类型(.oet.svg.ttf.woff)和IIS服务开始他们。Chrome开发人员工具也不会抱怨重新解释类型。

干杯,迈克尔


8
“应用程序/八位字节流”是Web服务器,相当于说“我不知道这是什么”。
同步

1
是的我知道。但是关键是它可以工作,而许多更具体的选项似乎并未导致在IIS7上使用字体。我的评论比试图成为最正确的评论更务实(因为那没有用)。
迈克尔·肯尼迪

1

对于所有解决方案index.php,删除允许的形式url和woff文件。在.htaccess文件中编写以下代码,并将其更改为application / config / config.php文件:$ config ['index_page'] ='';

仅适用于Linux托管服务器。 .htaccess文件详细信息

AddType font/ttf .ttf
AddType font/eot .eot
AddType font/otf .otf
AddType font/woff .woff
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    #Removes access to the system folder by users.
    #Additionally this will allow you to create a System.php controller,
    #previously this would not have been possible.
    #'system' can be replaced if you have renamed your system folder.
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #When your application folder isn't in the system folder
    #This snippet prevents user access to the application folder
    #Submitted by: Fabdrol
    #Rename 'application' to your applications folder name.
    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #Checks to see if the user is attempting to access a valid file,
    #such as an image or css document, if this isn't true it sends the
    #request to index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    # Submitted by: ElliotHaughin

    ErrorDocument 404 /index.php
</IfModule>

0

IIS自动将.ttf定义为application / octet-stream,这似乎很好用,并且fontshop建议将.woff定义为application / octet-stream


0

WOFF:

  1. Web开放字体格式
  2. 可以使用TrueType或PostScript(CFF)轮廓进行编译
  3. 当前由FireFox 3.6+支持

尝试添加:

AddType application/vnd.ms-fontobject .eot
AddType application/octet-stream .otf .ttf


-1

哑剧类型可能不是您唯一的问题。如果字体文件托管在S3或其他域上,则您可能还会遇到Firefox无法从其他域加载字体的问题。使用Apache可以轻松解决此问题,但是在Nginx中,我读到您可能需要在base-64中对字体文件进行编码并将其直接嵌入到字体css文件中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.