我不认为这是一个普遍现象,但我见过几次,甚至还提倡过这样做。我的意思是……
您访问 Google Fonts 并选择一个字体,例如 Open Sans,它会为您提供一个 <link>
或一个带有 URL 的 @import
,以便在您的网站上使用此字体。

您可以查看它返回的内容……

当然,只是一些 @font-face
声明!
现在,您注重性能的大脑开始运作了。等等。因此,我为此样式表发出一个 HTTP 请求,然后它会为它链接的那些 woff2 文件发出更多 HTTP 请求。绕过中间人,为什么不直接从这里复制这些 @font-face
块并使用它们呢。
您可以!但是!
问题在于 Google 在这里使用了巧妙的 Google 方法,并且该原始样式表的内容会根据请求它的浏览器而发生变化。上面的屏幕截图是 Chrome 66。以下是 Windows 7 上的 Firefox 20

它不一样!它只有 woff,没有 woff2。如果我们在 IE 8 中打开该 URL,我们将获得一个包含 eot 格式的 @font-face
块!
重点是,该 URL 提供的内容非常具体地针对当前浏览器需要的内容。这是一件非常棒的事情,可以将其抽象出来,无需担心。如果新的浏览器需要新的格式和新的 CSS 语法,它将自动随之而来。
这并不是说 Google Fonts 在这方面完美无缺。例如,通过不控制您自己的 @font-face
块,您无法利用 font-display,这很可惜。也许我们将来会实现这一点,或者也许值得自行托管您的 Google Fonts,这是我们将来会讨论的另一件事。
如果我选择提供的下载选项并自行托管字体会怎样?
http://michaelboeke.com/blog/2013/09/10/Self-hosting-Google-web-fonts/
这可以稍微帮助您一下
发送流量到 Google?没门。所有 Google 字体都是开源的。只需下载并自行托管即可。性能更好,道德也更好。
没错!在某些国家/地区,Google 被屏蔽,如果没有 VPN,您获得的只是加载缓慢的网站,始终自行托管。
然后您就会错过浏览器缓存,并且服务器上的负载会减少(您的服务器可能比 Google 的服务器慢)。
您为什么会错过浏览器缓存?如果您自行托管,您可以自己缓存网络字体文件。
如果 Google 对该特定哈希版本字体的缓存过期,您的字体会消失怎么办?样式表 URL 是永久链接,但字体文件路径可能不是 – Google 可以在字体文件更改时更新样式表,但您静态定义的字体 URL 不会更新。
通过热链接到他们的 CDN,您需要用用户隐私的一小部分来支付您的网络字体的费用。这在他们的 Github 存储库中被提出,但不幸的是,没有得到令人满意的解决: https://github.com/google/fonts/issues/1495
https://google-webfonts-helper.herokuapp.com/fonts 这对于本地托管来说很不错!
正如其他人已经说过的,链接到 Google 托管的样式表也不是一个好主意。最好下载字体包并使用您实际所需的格式和样式手动设置样式表。将字体资产上传到您的 Web 服务器或您正在使用的任何 CDN。
除了前面提到的原因外,值得指出的是,许多网络会拒绝加载 Google 托管的样式表,因为 fonts.googleapis.com 的 DNS 条目最近被重新映射到一个(经常被列入黑名单的)广告域名 googleadapis.l.google.com。
糟糕。哈哈。
起初,这仅影响使用基于 DNS 的广告拦截和/或审查防火墙的互联网用户子集,但现在 GDPR 已全面实施,越来越多的用户完全屏蔽了 Google 和 Facebook 等大型实体。
自行托管字体会影响浏览器缓存吗?如果我引用的是我的服务器上托管的字体,浏览器是否仍会在可用时使用缓存版本?
关于 GDPR,请参阅 https://developers.google.com/fonts/faq#what_does_using_the_google_fonts_api_mean_for_the_privacy_of_my_users,如果您使用 Google 字体,则应在隐私政策中链接此内容。底线:没有 Cookie,但没有否认 IP,并且会记录推荐来源,并且可能会进行浏览器分析。
我实际上在内部托管的无互联网访问权限的项目中链接 Google 字体时遇到了麻烦。加载 URL 可能需要一分钟或更长时间。
我始终使用 https://google-webfonts-helper.herokuapp.com/fonts 从 Google Fonts 下载字体。
而且说真的,现在谁还需要包含 ttf?看看浏览器对 woff 和 woff2 的支持 https://caniuse.cn/#search=woff
如果您想使用分层字体或多色字体;看起来唯一的方法是自行托管并制作一个二级字体,该字体将以不同的颜色呈现,从开源字体中分层到普通颜色字体的顶部。
除非 Google 愿意托管用于分层的派生字体?