我们有一个包含所有图标的字体文件。就目前而言,如果我们在我们的字体文件中添加一个图标,我们的用户将无法看到它们,直到缓存过期或清除缓存并刷新(ctrl + F5)我们的用户不太可能知道该怎么做。< / p>
即使我们关闭缓存,也需要简单的刷新(F5)才能获得最新的缓存。我们的用户可能做的事情,但我们知道我们至少会得到几个问题。
理想情况下,我们会无限期地缓存字体文件,只有在发生变化时才会再次下载。类似于javascript和css文件如何与Asp.Net捆绑使用。
有没有办法自动执行此操作?我发现如果我在CSS的@ font-face中的字体文件位置末尾有一个?v=1
,它会再次下载字体文件,但它是一个手动过程而且我是#&# 39;我想避免这种情况。
有没有办法自动更新CSS中字体文件的版本查询字符串?
答案 0 :(得分:0)
不是我想要的答案,但这是我决定做的事情。如果您有更好的解决方案,请告诉我,我很乐意将其他内容标记为答案:)
我上面描述的行为&#34;关闭缓存&#34;实际上并没有发送任何缓存标头。如果我发送Cache-Control: no-cache
标题,浏览器会在每次加载页面时请求字体文件。该请求包括eTag,因此如果字体文件未被修改,则服务器发送304并且浏览器从其缓存中提取字体。
最好的部分是页面不等待字体文件,它只是在服务器返回新的字体文件或304之前做到最好。
该请求将在99.99%的时间内浪费,但此应用程序是单页应用程序,因此它仅在首次加载应用程序时才会发出该字体请求。