自动版本字体文件以破坏缓存

时间:2016-04-29 16:12:40

标签: asp.net asp.net-mvc

我们有一个包含所有图标的字体文件。就目前而言,如果我们在我们的字体文件中添加一个图标,我们的用户将无法看到它们,直到缓存过期或清除缓存并刷新(ctrl + F5)我们的用户不太可能知道该怎么做。< / p>

即使我们关闭缓存,也需要简单的刷新(F5)才能获得最新的缓存。我们的用户可能做的事情,但我们知道我们至少会得到几个问题。

理想情况下,我们会无限期地缓存字体文件,只有在发生变化时才会再次下载。类似于javascript和css文件如何与Asp.Net捆绑使用。

有没有办法自动执行此操作?我发现如果我在CSS的@ font-face中的字体文件位置末尾有一个?v=1,它会再次下载字体文件,但它是一个手动过程而且我是#&# 39;我想避免这种情况。

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

1 个答案:

答案 0 :(得分:0)

不是我想要的答案,但这是我决定做的事情。如果您有更好的解决方案,请告诉我,我很乐意将其他内容标记为答案:)

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

最好的部分是页面不等待字体文件,它只是在服务器返回新的字体文件或304之前做到最好。

该请求将在99.99%的时间内浪费,但此应用程序是单页应用程序,因此它仅在首次加载应用程序时才会发出该字体请求。