使用@字体面减慢加载时间。 我可以强制客户端缓存的字体?(Using @font-face sl

2019-07-29 04:12发布

更新:看起来像头请求信息是罪魁祸首。 我将如何改变请求头的最大年龄的财产? TIA。


嗨,我使用@字体面在网站上和我遇到的文字(大概是由于字体中的每个页面的加载)的延迟加载。 据我所知,客户端下载字体一次正常显示,但每一页?

有没有一种方法,我可以强制浏览器缓存这个文件? 还是有另一种替代方案,以加快字体的加载时间? (这是一个问题,更合适张贴在服务器故障 ?)

提前致谢。 最坏的情况下,我会延迟生活,所以我不需要任何“起飞@字体面”的答案...;)

附加信息:

  • 我在Safari浏览器都(4)和Firefox(3.5RC1)Mac和Windows上测试了这个(XP和7)
  • 所有我对当前设置为允许缓存测试的浏览器(默认情况下它是上)
  • 该URL 不是动态的,它只是“/fonts/font.otf”
  • 字体网址是正确的,因为在页面加载的字体并正确显示出来,尽管速度较慢再正常不过
  • 请求头:

    缓存控制:最大年龄= 0
    如果-Modified-Since的:星期三,2009年3点46分28秒格林尼治标准时间6月24日
    如果 - 无 - 匹配:W / “484d9f2-a5ac-46d10ff2ebcc0”
    引用者: http://testurl.com/
    用户代理:Mozilla的/ 5.0(在Macintosh; U;英特尔的Mac OS X 10_6; EN-US)为AppleWebKit / 530.13(KHTML,例如Gecko)版本/ 4.0的Safari / 530.15

  • 响应头:

    连接:保持活动
    日期:周四,2009年2时21分31秒格林尼治标准时间6月25日
    ETAG: “484d9f2-a5ac-46d10ff2ebcc0”
    保持活动:超时= 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

Answer 1:

你永远不能强制浏览器缓存的东西,只会鼓励它。 我能想到的任何理由用正确的字体文件过期头不会被缓存,从而给我们带来:

  • 这是一个浏览器的bug(你不说哪个浏览器)
  • 缓存控制头丢失或错
  • 您的浏览器配置为不缓存任何东西(做图像缓存?)
  • 您的字体网址是动态的,所以浏览器认为每个请求是不同的资源
  • 该字型文件实际上丢失或或网址拼写错误的。
  • 延迟不是由字体下载引起的(你是说,你这是问题)

我想更多的信息秩序。

编辑:要设置高速缓存控制服务器和语言的具体的事情。 看看指定mod_expires有关在Apache的缓存信息。



Answer 2:

你确定你的字体文件被缓存? 就像其他静态内容,他们应该有远的将来到期日期,和他们的头应该被配置为允许它们被缓存。 如果您承载您的服务器场的字体,你要确保你的ETag头跨场中的所有服务器标准化...否则的字体可能会迫使其后续请求从备用服务器重新下载即使相同的数据已经从另一台服务器下载。



文章来源: Using @font-face slows load time. Can I force the client to cache the font?
标签: css font-face