2016-04-29 64 views
1

我们有一个包含所有图标的字体文件。现在,如果我们在字体文件中添加一个图标,我们的用户将不会看到它,直到它们的缓存过期,或者它们清除缓存并刷新(ctrl + F5),这是用户不太可能知道该怎么做的。自动版本字体文件,以取消缓存

即使我们关闭缓存,一个简单的刷新(F5)来获得最新的。我们的用户可能会这样做,但我们知道我们至少会得到几个问题。

理想情况下,我们会无限期缓存的字体文件,并当有些变化只有重新下载。类似于javascript和css文件如何与Asp.Net捆绑使用。

有没有办法自动做到这一点?我发现如果我在CSS的@ font-face中的字体文件的位置末尾有一个?v=1,它会再次下载字体文件,但这是一个手动过程,我想避免这种情况。

有没有办法自动更新CSS中字体文件的版本查询字符串?

回答

0

不是我正在寻找的答案,但这是我所做的决定。如果你有一个更好的解决方案,请让我知道我会喜欢标志着别的东西作为答案:)

我上述的“关闭缓存”实际上没有发送任何缓存头的行为。相反,如果我发送Cache-Control: no-cache标题,则浏览器会在每次加载页面时请求字体文件。该请求包含电子标签,因此如果字体文件未被修改,服务器将发送304,并且浏览器从其缓存中提取字体。

最好的部分是,网页不会等待字体文件,它只是它是最好的,直到服务器或者返回一个新的字体文件或304

该请求将被浪费掉99.99%的时间,但这个应用程序是一个单页面应用程序,所以它只会在首次加载应用程序时发出该字体请求。