在IE11中部署到生产后角度清除缓存

时间:2018-05-18 10:47:58

标签: angular asp.net-web-api internet-explorer-11

我们有一个组合的应用程序:Angular5 + ASP.NET WebApi。

支持的浏览器将是:Google Chrome,IE11 +

在部署到生产并对客户端代码进行一些更改后,最终用户可能仍会在某处缓存旧代码。解决方案是什么?让我们假设客户端和backEnd版本已经版本化,我们可以访问该信息。

一种选择是在代码检测到版本发生变化后强制浏览器清除其缓存(这里的问题是如何做到这一点)。另一个可能是通知用户清除缓存,因为版本已更改(解决方法)。

解决此问题的最佳方法是什么?我想这是一个非常常见的场景,但我似乎无法在网上找到关于如何实现这一目标的任何好材料。

此致

2 个答案:

答案 0 :(得分:1)

使用--prod标记as intended by the CLI构建您的应用程序。

您还可以运行显示此标记的ng build --help命令( RTFM ):

--output-hashing=none|all|media|bundles 
(String) Define the output filename cache-busting hashing mode.
aliases: -oh <value>, --outputHashing <value>

答案 1 :(得分:0)

我希望通过If-Modified-Since / Last-Modified Headers固有地处理此问题,但是您的几个主题似乎表明情况并非如此。

有几种方法可以解决这个问题。最常用的是通过网址中的其他版本指标重新识别文件,有关详细信息,请参阅this

MVC 6也可以帮助您that

您可能需要调整此方法以适应您选择的框架组合。例如,一个小型Helper,它从特定于版本的子文件夹提供角度文件。