如何在版本更新时强制文件刷新角度模块

时间:2015-04-20 15:27:25

标签: angularjs

我正在开发一个驻留在专用网络上的大型angular.js / mvc webapi SPA。当我通过安装程序将新版本的应用程序部署到客户的站点时,客户端的浏览器软件只会在登录/注销时继续运行旧模块。浏览器只使用应用程序主模块的缓存版本。

过去,在其他平台上,比如ASP.NET,我使用了一个发布版本的Web服务,并为每个javascript资源请求添加了?version = 123,以强制客户端版本保持最新,无论客户端浏览器如何积极地缓存javascript文件。

在保留在内存中的单页应用程序中解决此问题的最佳策略是什么。如果我以角度命中web服务,我如何绕过路由提供程序并强制它重新加载承载主应用程序模块的实际javascript文件?

在角度空间中安装Web应用程序开发人员使用什么策略来解决这个问题?

1 个答案:

答案 0 :(得分:1)

我还没有50个声望点,所以我无法发表评论,我将其留作答案。

在我们的项目中,我们使用TeamCity来部署Web应用程序,我们正在使用在部署阶段运行的控制台应用程序。控制台应用程序在每次部署时使用T4 template进行index.html转换。我们如何将版本参数添加到脚本URL。 T4 templates可以由razor引擎或任何其他技术替代。

另一种方法是仅使用ASP.NET来获取主视图,但我不希望仅为一个简单的任务将ASP.NET包含在Web应用程序中。

我认为我们的解决方案看起来太沉重,而且有趣的是有更简单的解决方案。