更新 看起来头信息请求信息是罪魁祸首。如何更改请求标头的max-age属性? TIA。
嗨,我在网站上使用@ font-face,我遇到文本加载延迟(可能是因为每页都加载了字体)。我知道客户端必须下载一次字体才能正常显示,但是每一页都显示?
有没有办法可以强制浏览器缓存该文件?或者是否有另一种方法可以加快字体的加载时间? (这个问题更适合在Server Fault上发帖吗?)
提前致谢。最糟糕的情况是,我会忍受延迟,所以我不需要任何“脱掉@ font-face”答案......;)
其他信息:
请求标题:
缓存控制:最大年龄= 0
If-Modified-Since:Wed,24 Jun 2009 03:46:28 GMT
如果 - 无 - 匹配:W / “484d9f2-a5ac-46d10ff2ebcc0”
引用者:http://testurl.com/
用户代理:Mozilla / 5.0(Macintosh; U; Intel Mac OS X 10_6; en-us)AppleWebKit / 530.13(KHTML,类似Gecko)版本/ 4.0 Safari / 530.15
回复标题:
连接:保持活动
日期:2009年6月25日星期四02:21:31 GMT
ETAG: “484d9f2-a5ac-46d10ff2ebcc0”
保持活跃:超时= 10,最大= 29
服务器:Apache / 2.2.11(Unix)mod_ssl / 2.2.11 OpenSSL / 0.9.8i DAV / 2 mod_auth_passthrough / 2.1 mod_bwlimited / 1.4 FrontPage / 5.0.2.2635
答案 0 :(得分:4)
你永远不能强迫浏览器缓存某些内容,只能鼓励它。我可以想到没有理由为什么带有正确的expires头的字体文件不会被缓存,这将我们带到:
我认为有更多的信息是有序的。
编辑:设置缓存控制是服务器和语言特定的事情。有关Apache中缓存的信息,请查看mod_expires。
答案 1 :(得分:2)
您确定您的字体文件是可缓存的吗?就像其他静态内容一样,它们应该具有远期到期日期,并且应该配置它们的标题以允许它们被缓存。如果要在服务器场中托管字体,则需要确保在服务器场中的所有服务器上规范化etag标头...否则后续的字体请求可能会强制从备用服务器重新下载字体即使已经从另一台服务器下载了相同的数据。