Chrome警告:资源解释为字体,但用MIME型字体/SVG传输



我在Chrome Dev工具中获取以下警告,该警告base64编码字体嵌入了我正在使用的网站中的一个CSS文件中的一个。

Resource interpreted as Font but transferred with MIME type font/svg: "data:font/svg;charset=utf-8;base64,PD94bWwgd -- big base64 encoded string -- 2RlZnM+PC9zdmc+"

在CSS中,字体被插入这样的字体:

@font-face {
  font-family: 'PrintBelt';
  src: url('data:font/svg;charset=utf-8;base64,PD94bWwgd -- big base64 encoded string -- 2RlZnM+PC9zdmc+") format('svg'), url('data:font/ttf;charset=utf-8;base64,AAEAAAANAIAA -- other big base64 encoded string -- AAAAzLVVtw==') format('truetype');
}

我已经四处搜索并找到了一些博客文章,因此旨在解释如何解决此问题的问题。他们似乎都没有处理嵌入在CSS中的字体。

  1. 字体适当的MIME类型
  2. 哈!在您的字体面中

为了使此警告保持沉默?

链接的问题说没有font/主要内容类型轴(可能存在,但没有),并且SVG字体的内容类型是image/svg+xml;剩下的就是正确编码data: URL中的正确编码。这是非常略有棘手的,因为解码后您需要一个+,因此您必须对其进行编码(因为+通常用作代币来代替空间):

数据:Image/svg%2bxml; charset = utf-8; base64,pd94bwwgd ... 

truetype字体使用内容类型application/x-font-ttf,这是无误的。

最新更新