我们有一个组合的应用程序:Angular5 ASP.NET WebApi .
支持的浏览器将是:谷歌浏览器,IE11
在通过对客户端代码进行一些更改来部署到 生产环境 之后,最终用户可能仍会在某处缓存旧代码 . 解决方案是什么?让我们假设客户端和backEnd版本已经版本化,我们可以访问该信息 .
一种选择是在代码检测到版本发生变化后强制浏览器清除其缓存(这里的问题是如何做到这一点) . 另一个可能通知用户清除缓存,因为版本已更改(解决方法) .
解决这个问题的最佳方法是什么?我想这是一个非常常见的场景,但我似乎无法在网上找到关于如何实现这一目标的任何好材料 .
问候
2 回答
使用
--prod
标志as intended by the CLI构建应用程序 .您还可以运行
ng build --help
命令( RTFM ),该命令显示此标志:我希望通过
If-Modified-Since
/Last-Modified
Headers固有地处理这个问题,但是你的几个线程似乎表明情况并非如此 .有几种方法可以解决这个问题 . 最常用的是通过URL中的附加版本指示符重新标识文件,有关详细信息,请参阅this .
MVC 6也可以帮助你that .
您可能需要调整此方法以使用您选择的框架组合 . 例如,一个小的Helper,它从特定于版本的子文件夹提供角度文件 .