Safari用户安装的字体无法呈现

13

我正在使用MAC OSX操作系统,我的Safari版本是13.0.3。我尝试将一些自定义字体安装到我的电脑上。我从https://www.fontsquirrel.com/fonts/list/popular (仅供参考) 安装了great-vibes字体,并在我的字体册中的“用户字体”部分显示。我使用字体的.otf格式。现在,我尝试在我的网页应用程序中使用它,方法如下:

@font-face {
  font-family: 'Great Vibes'; //Added postscript name as well, did not work
  font-style: normal;
  font-weight: 400;
  src: local('Great Vibes')
}
body {
  font-family: 'Great Vibes' !important;
}
这在Chrome和Firefox中工作(即使没有@font-face声明)。但是在Safari上不起作用。我尝试了一些选项,如-webkit-text-stroke: .5px; text-rendering: optimizeLegibility; 但它不起作用。我尝试安装不同的自定义字体到我的机器上,它们在Safari上也无法使用。我看到字体已经正确安装。
注意:将自定义字体保留在我的应用程序代码中并使用@font-face/src/url就可以正常工作。问题是尝试访问已在计算机上安装的自定义字体时出现的问题。
2个回答

20
这是因为Safari 12/macOS Mojave禁用了用户安装的字体的显示以打击浏览器指纹识别,这种技术可以通过观察您的系统配置(包括已安装的字体)来进行在线跟踪。通过只呈现默认系统字体和任何其他可访问互联网的字体,您的计算机看起来更像其他计算机,并且更难被跟踪。

如果您想在Safari中使用非标准字体进行开发,您必须使用指向嵌入式或互联网托管字体的@font-face/src/url声明。或者,您可以禁用跟踪保护,但这可能不是一个好主意。

如果您在Firefox中启用了增强的跟踪保护,它也会阻止指纹识别,您应该看到与Safari相同的行为。

来源:两个reddit帖子


1
真让人烦恼,这里没有defaults.write或者允许此事的偏好设置! - oelna
2
你说过,“或者,你可以禁用跟踪保护”。那么该怎么做呢?取消“防止跨站点跟踪”似乎不能恢复显示本地安装字体的能力。 - Kal

2
你应该尝试使用“Bulletproof @font-face 语法”,其中本地字体的基本语法如下所示:

参考链接

@font-face {
font-family: 'Graublau Web';
src: url(GraublauWeb.eot);
src: local('Graublau Web Regular'), url(GraublauWeb.otf) format('opentype');
}

1
我正在使用字体的.otf格式。正如所提到的,我不想使用属性"url",因为我没有在我的应用程序代码中维护字体。我正在尝试访问安装在我的系统上的字体。我尝试了src: local('Great Vibes') format('opentype'),但它并不起作用。 - ASR
你好,抱歉,我可能误解了。请查看我的编辑答案。如需进一步解释,请参考我发布的链接。 :) - PaulS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接