Chrome扩展程序font-face mime-type

时间:2013-01-06 21:05:34

标签: google-chrome-extension font-face

此问题我已在服务器上解决,但未在Chrome扩展程序中解决。 当我使用加载了@font-face的自定义字体时,Chrome会向我发出警告。例如:

@font-face {
    font-family: 'fontello';
    src:  url("../../fonts/fontello.svg#fontello") format('svg');
    font-weight: normal;
    font-style: normal;
}

Chrome告诉我这样的事情:

Resource interpreted as Font but transferred with MIME type image/svg+xml: "fonts/fontello.svg#fontello"

所以在服务器上我可以强制为我的字体设置标题,但我可以在Chrome扩展程序中做什么? 任何类型的Chrome扩展程序魔术提前感谢。

1 个答案:

答案 0 :(得分:1)

自Chrome 28以来

This bug已经修复,因此警告消息(关于svg字体)不再相关。

在评论中,Josh说他们仍然遇到扩展问题,可能是他在控制台中收到以下消息:

  

资源被解释为字体,但使用MIME类型text / plain:chrome-extension:// ...

进行传输

Chrome扩展程序和应用程序中的文件使用操作系统定义的MIME类型(a few common formats defined in mime_util.cc除外)。在Windows上,这些可以在Windows注册表中找到,在Linux中的共享MIME数据库中找到(可通过xdg-mime访问)。如果您修复系统上的文件关联,则警告将消失。例如。在Josh的例子中,将.ttf映射到font/truetypewoff映射到application/font-woff可以解决问题。

Chrome支持TTF,WOFF和SVG字体,因此如果由于某种原因无法更改MIME映射,则可以始终切换为其他字体。例如,如果您的系统的.woff文件的MIME类型已损坏,但.ttf的映射正确,则只需使用以下声明来加载true-type字体而不是.woff字体:

@font-face {
  font-family: 'NameOfMyFont';
  src: url('chrome-extension://__MSG_@@extension_id__/fontfile.ttf') format('truetype');
}