谷歌网络字体如何进行下载备份?

4

我想知道是否有一种方法可以在谷歌网页字体不可用时使用其他字体源?就像我们检查window.jquery以查看谷歌jquery cdn是否宕机并提供替代文件的方式一样。


1
换句话说,您是在寻找如何在本地托管字体文件并使用它的方法吗? - d-_-b
如果 Google Web Fonts CDN 出现故障,我的网站将完全混乱,因为整个网站的间距、宽度等都依赖于特定的字体。我想通过提供本地版本来避免这种情况。 - Steven
那么,是的,这不就是我上面说的吗? - d-_-b
你可以在自己的网站上托管Google字体。尽管Google CDN比你的Web服务器更不容易崩溃,但这是无关紧要的,因为只有当你的网站处于可用状态时,字体的可用性才会有意义。 - Tim M.
2个回答

7
你可以简单地指定一个安装在自己服务器上的网络字体版本作为第二个选项,例如:
<link href='https://fonts.googleapisx.com/css?family=Cantarell' rel='stylesheet'>
<style>
@font-face {
    font-family: 'cantarellregular';
    src: url('cantarell-regular-webfont.eot');
    src: url('cantarell-regular-webfont.eot?#iefix') format('embedded-opentype'),
         url('cantarell-regular-webfont.woff') format('woff'),
         url('cantarell-regular-webfont.ttf') format('truetype'),
         url('cantarell-regular-webfont.svg#cantarellregular') format('svg');
    font-weight: normal;
    font-style: normal;
}
body { font-family: Cantarell, cantarellregular; }
</style>

您需要为服务器中的字体系列取一个不同的名称;在示例中,我使用了FontSquirrel @font-face generator生成的名称。

这样,浏览器将首先尝试从Google网站获取字体文件,如果由于某种原因失败,则会从您的服务器获取字体文件。

我想知道为什么您不直接使用自己服务器上的字体,如果您担心Google网站出现故障。(很少见到它出现故障;但是用户设备与Google网站的连接可能会中断,即使与您的站点的连接正常。)


我有类似的想法...但我想知道在浏览器恢复到列表中的下一个字体之前,页面将无样式多长时间(例如,它会等待Google托管字体请求超时吗)。 - Tim M.
1
谷歌的CDN比本地托管更快,如果这样说有意义的话。我只是想要一个备份。 - Steven
这不太对,一定有一种方法可以检查Google URL并在将URL更改为本地主机之前立即确定其是否已关闭,上面的解决方案缺少本地字体的第二个链接...至于Google字体崩溃,今天是一周内的第二次:/ - Ayyash
为什么不管怎样都托管它呢?原因很简单,首先这就是我们更喜欢CDN的原因,其次,Google运行了一些服务器端检查并生成了一个更友好的文件版本,请查看并从不同的浏览器访问相同的URL。 - Ayyash
仅在本地提供字体比尝试检查 Google 是否宕机(从用户的角度)更简单。如果您希望您的页面首先呈现正常,我不明白为什么您会担心从同一服务器传递字体。毕竟,您将依赖于您需要依赖的服务器。 - Jukka K. Korpela
在即将被“云托管”和按带宽KB付费所主导的世界中,我认为越来越重要的是希望依赖他人来托管您的文件...但我想这需要极大的信任。 - Ayyash

1
你可以列出多个字体系列,它们将按照顺序显示。例如:
font-family: 'Skranji', cursive, Verdana, Geneva, sans-serif;

这将使用Google网页字体Skranji,如果不可用,则会切换到Verdana等其他字体。

1
不,如果Skranji字体不可用,它将切换到“cursive”字体,这是一个由浏览器定义的字体,被认为是连续书写的字体,但实际上可能是任何东西(可能是一些奇怪的字体)。 - Jukka K. Korpela
这里有一个链接,可能会让你了解它是如何工作的,谢谢 :) http://www.w3.org/TR/CSS2/fonts.html#font-family-prop 我的示例按预期完美运行。 - Ionko Gueorguiev
1
引用的CSS规范清楚地说明字体名称列表是按顺序使用的。因此,如果Skrjanji不可用,浏览器将使用“cursive”。 - Jukka K. Korpela

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