我们的调查向我们表明,并非所有浏览器都以统一的方式尊重http缓存指令.
出于安全原因,我们不希望在我们的应用程序某些网页缓存,有史以来,通过Web浏览器.这必须至少适用于以下浏览器:
我们的要求来自安全测试.从我们的网站注销后,您可以按后退按钮查看缓存页面.
我读到,当您无法访问Web服务器的标头时,您可以使用以下命令关闭缓存:
<meta http-equiv="Cache-Control" content="no-store" />
Run Code Online (Sandbox Code Playgroud)
但我也读到这在某些版本的IE中不起作用.是否有任何<meta>标签可以关闭所有浏览器中的缓存?
我们有一个 Angular 7 应用程序,我们使用 Angular CLI 进行构建,我们使用以下命令构建应用程序:
ng build --prod
我们已经检查过并将哈希值添加到文件名中。我们还使用以下内容设置了 index.html:
<meta http-equiv="Cache-control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
Run Code Online (Sandbox Code Playgroud)
尽管如此,我们仍然需要在发布后要求我们的用户按 ctrl+F5 来查看最新版本,看来 Chrome 正在缓存 index.html。
无论如何,有没有更好的方法来解决这个问题。我们正在考虑在每个版本中更改 index.html 文件以将当前日期和时间附加到名称和 angular.json 中,但我们更愿意使用提供的工具来解决这个问题。
任何帮助表示赞赏。