HTML缓存破坏技术

3
我已阅读过一种称为缓存破解的方法,它允许我们向js和css文件中添加版本参数,以便客户端在更新时无需清除缓存。但是,我没有看到任何关于html的内容。
是否有一种方法可以在不清除缓存的情况下加载最新的html文件更改?
附言:我不知道其他人是否也有这种情况,但我刚刚发现是AngularJS正在缓存我的模板。无论如何,我还是发布了自己的解决方案。
2个回答

7
解决了。 只需在引用HTML文件的路由后附加参数字符串,就像我们对CSS和JS进行缓存破坏一样。
.when('/login', {
        templateUrl: "../views/login.html?v=" + versionNumber,
        controller: "LoginController"
    })

其中'versionNumber'是一个全局变量。


1
我建议设置一个第二个变量,比如 _versionUrl = "?v=" + versionNumber_,这样你就不必在应用程序中的每个 templateUrl 的末尾加上 "?v="。 - undefined

1

编辑

原回答中的链接已失效。

除了被采纳的回答外,这个问题下的回答根据您的构建过程提供了有趣的替代方案。

原始

您应该可以通过js强制重新加载浏览器,并通过将哈希应用于url来使用仅存在于更新版本的html文件上的特定于页面的JavaScript。

这将使您知道何时接收到最新版本的文件。

https://developer.zendesk.com/blog/static-file-cache-busting


1
@michaelmsm89 谢谢。已更新答案。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接