所以我正在创建一个超优化的网站,我的页面加载速度https://developers.google.com/speed/pagespeed/ 99(满分100)。
让我远离百满的唯一一件事是:
通过指定缓存验证程序 - Last-Modified或ETag标头 - 可以确保可以有效地确定缓存资源的有效性。
什么?我不知道该怎么办。如何为google webfonts设置缓存验证程序?
我的webfont是这样的:<link href='http://fonts.googleapis.com/css?family=Open+Sans:400,800' rel='stylesheet' type='text/css'>
。
如果重要的话,我正在使用apache2进行ubuntu。
将webfont下载到服务器并从那里使用它会将分数降低到96,这样也无济于事。
答案 0 :(得分:15)
你无能为力。您无法控制Google服务器发送的标头。
我甚至会说它报告了你应该修复的误报。
http://redbot.org/?uri=http%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DOpen%2BSans%3A400%2C800
正如您所看到的,资源已缓存,具有最大年龄标头,甚至是压缩的。
你网站足够快!我不担心得到100.你可能会停止优化它。
但是如果你想再修补一下,这里有一些关于改进的想法,我发了一份报告:http://www.webpagetest.org/result/130703_H7_15KM/
答案 1 :(得分:1)
Actualy你可以<link rel="prefetch" type="text/css" onload="this.rel='stylesheet'" href="fonturl">
答案 2 :(得分:1)
这是一个不错且干净的解决方案。
那99分确实不错。但是,如果您担心剩下的1分,可以从Easy Fonts库中加载Open Sans字体来解决此问题。
ReferenceError: Can't find variable: renderCall
完整字体参考可在Easy Fonts网站上找到。在生产中使用Easy Fonts库还有更多好处。请参阅以下stackoverflow答案:https://stackoverflow.com/a/57073920/369005。