谷歌Web字体的缓存验证器

22

我正在创建一个超级优化的网站,我的页面加载速度通过https://developers.google.com/speed/pagespeed/测试得分99(满分100)

唯一阻碍我达到满分的是:

通过指定缓存验证器——Last-Modified或ETag头——您可以确保缓存资源的有效性能够高效地确定。

什么?我不知道该怎么做。如何为谷歌网络字体设置缓存验证器?

我使用的Web字体链接如下:<link href='http://fonts.googleapis.com/css?family=Open+Sans:400,800' rel='stylesheet' type='text/css'>

我使用的操作系统是Ubuntu,服务器是Apache2。

将Web字体下载到服务器并从服务器上使用会将得分降至96,因此这也不会有所帮助。

3个回答

14

你无法对此做出任何控制。你不能控制 Google 服务器发送的 header。

我甚至认为这是一个错误的正面反馈,你应该解决它。

http://redbot.org/?uri=http%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DOpen%2BSans%3A400%2C800

正如您所看到的,资源已被缓存,具有最大年龄 header,甚至已经被压缩。

你的网站速度已经足够快了! 我不会担心得到100分。你可能可以停止优化它。

但如果你想再折腾一些,这里有一些改进建议,我运行了一份报告:http://www.webpagetest.org/result/130703_H7_15KM/


我实际上有一个网站图标,并且jQuery是从谷歌加载的。我不喜欢jpg,但我已经优化了png :) - user1537415

1

这里有一个简洁明了的解决方案。

99分的成绩已经非常好了。但是,如果你担心那剩余的1分,你可以从Easy Fonts库中加载Open Sans字体来解决这个问题。

<link href="https://pagecdn.io/lib/easyfonts/open-sans.css" rel="stylesheet" />

完整的字体参考可在Easy Fonts网站上获得。使用Easy Fonts库还有其他几个好处,详情请查看此stackoverflow答案:https://dev59.com/EV4b5IYBdhLWcg3wdxgv#57073920

0

实际上,您可以使用以下代码:<link rel="prefetch" type="text/css" onload="this.rel='stylesheet'" href="fonturl">


1
这个为什么有效以及在哪里有文档记录的信息? - Phill Healey
它可以工作,我知道这一点,但据我所知只在Chrome中有效。 - Bican M. Valeriu
这是什么?它有什么作用?谢谢。 - user5306470

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