使用@ font-face会减慢加载时间.我可以强制客户端缓存字体吗?

mcl*_*inj 13 css font-face

更新: 看起来标头请求信息是罪魁祸首.如何更改请求标头的max-age属性?TIA.


嗨,我在网站上使用@ font-face而且我遇到了文本的延迟加载(可能是因为每页加载了字体).我了解客户端必须下载一次字体才能正常显示,但是每个页面?

有没有办法可以强制浏览器缓存该文件?或者是否有另一种方法可以加快字体的加载时间?(这是一个更适合在服务器故障上发布的问题吗?)

提前致谢.最糟糕的情况是,我会忍受延迟,所以我不需要任何"脱掉@ font-face"答案......;)

附加信息:

  • 我在Mac和Windows(XP和7)上都在Safari(4)和Firefox(3.5RC1)中测试了这个
  • 我测试过的所有浏览器目前都设置为允许缓存(默认情况下是打开的)
  • URL 不是动态的,只是"/fonts/font.otf"
  • 字体URL是正确的,因为页面加载字体并正确显示,尽管比正常慢
  • 请求标题:

    缓存控制:最大年龄= 0
    的If-Modified-日期:星期三,2009年6月24日3时46分28秒GMT
    如果-无-匹配:W/"484d9f2-a5ac-46d10ff2ebcc0"
    的Referer:http://testurl.com /
    User-Agent:Mozilla/5.0(Macintosh; U; Intel Mac OS X 10_6; en-us)AppleWebKit/530.13(KHTML,类似Gecko)版本/ 4.0 Safari/530.15

  • 响应标头:

    连接:Keep-Alive
    日期:2009年6月25日星期四02:21:31 GMT
    Etag:"484d9f2-a5ac-46d10ff2ebcc0"
    Keep-Alive:timeout = 10,max = 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

jri*_*sta 2

您确定您的字体文件可缓存吗?就像其他静态内容一样,它们应该具有遥远的到期日期,并且它们的标头应该配置为允许缓存它们。如果您将字体托管在服务器场上,则需要确保您的 etag 标头在场中的所有服务器上标准化...否则对该字体的后续请求可能会强制从备用服务器重新下载它即使相同的数据已经从另一台服务器下载。