Firefox中Materialize的Roboto字体显示问题

Firefox中Materialize的Roboto字体显示问题,firefox,fonts,font-face,materialize,Firefox,Fonts,Font Face,Materialize,我用它来设计我的一些网页。我注意到Roboto字体在Firefox(v43.0.3)中无法正确呈现,但在Chrome中看起来很好。两种浏览器都在从我的服务器下载woff2字体文件,这似乎表明它应该是现代浏览器的最佳选择 Chrome渲染: Firefox渲染: (我意识到这些低分辨率的屏幕并不是最好的复制品,在实际的浏览器中差异更为明显。) 在Firefox控制台中,我收到一系列错误消息,类似于: downloadable font: GSUB: too large substitute:

我用它来设计我的一些网页。我注意到Roboto字体在Firefox(v43.0.3)中无法正确呈现,但在Chrome中看起来很好。两种浏览器都在从我的服务器下载woff2字体文件,这似乎表明它应该是现代浏览器的最佳选择

Chrome渲染:

Firefox渲染:

(我意识到这些低分辨率的屏幕并不是最好的复制品,在实际的浏览器中差异更为明显。)

在Firefox控制台中,我收到一系列错误消息,类似于:

downloadable font: GSUB: too large substitute: 65535 (font-family: "Roboto" style:normal weight:normal stretch:normal src index:1)

downloadable font: Layout: Failed to parse lookup subtable 0 (font-family: "Roboto" style:normal weight:normal stretch:normal src index:1)

downloadable font: Layout: Failed to parse lookup subtable 0 (font-family: "Roboto" style:normal weight:normal stretch:normal src index:1)
没有来自Chrome的投诉


由于我对字体渲染的复杂性一点也不熟悉,我希望在这方面有一定知识的人能够根据Firefox的错误消息了解问题所在。

在我看来,woff2文件对内部字体表的偏移量错误,或者Firefox在解析偏移量时读取错误的偏移量

错误消息中提到的
GSUB
表不能是呈现问题的主要原因,因为它只定义字形替换(如连字合成和分解、相同字符代码的替代字形等)。该表不包含标准图示符的任何呈现信息,因此,如果只有该表未能加载,则标准文本的呈现不应受到影响。有关GSUB表的详细信息,请参见

此外,我在查看此网站时收到另一条错误消息:

Firefox告诉我,
OS/2
表(包含Windows字体度量)有问题。这是字体文件的一个完全不同的部分,这再次表明字体结构或读取字体结构有问题

所以你可以做两件事:

  • 不要使用
    woff2
    文件

  • 将此问题通知Roboto和Firefox开发人员,并希望他们能够找到导致此错误的原因并加以修复


  • 我终于有时间进一步研究了一下,似乎存储库中的一些字体文件有缺陷。我能够完全解决这个问题,只需将
    dist/font/roboto
    目录中的字体文件替换为上可用的相同文件。只需从任何版本分支
    v0.3.0
    或更高版本中拉出即可


    希望这能帮助其他对此感到沮丧的人。

    这方面运气好吗?我也一样issue@Brandon根据,它似乎可以在下一个Materialize版本(0.97.6)中更正。在进一步调查之前,我将等待该版本。只是一个更新:版本0.97.6似乎没有解决此问题。我从使用Woff2切换到Woff,现在在firefox中使用Webpack和文件加载器可以正常工作<代码>@font-face{font-family:“Roboto-Regular”;src:url('./assets/fonts/Roboto-Regular.eot')格式('eot')、url('./assets/fonts/Roboto-Regular.woff')、Chrome 6+、Firefox 3.6+、IE 9+、Safari 5.1+/url('./assets/fonts/Roboto-Regular.ttf')格式('truetype');/*Chrome 4+、Firefox 3.5、Opera 10+、Safari 3-5*/}