发布更改后强制重新加载Blazor客户端

时间:2020-04-12 10:12:27

标签: azure-web-app-service blazor

我有一个Blazor应用程序,该应用程序将部署到Azure以进行一些alpha测试。我已经做到了,并且可以从网站上正常运行该应用程序。

当我对客户端和服务器项目进行更改并重新发布时,问题就来了。无论运行哪种浏览器,客户端都将运行浏览器缓存中已存在的任何内容,直到清除浏览器历史记录。这意味着在清除历史记录之前,该应用程序似乎已损坏,因为旧版本上的客户端请求与新的服务器API不匹配-更不用说我的客户端更改没有得到测试。

发布更改时,如何强制重新加载客户端?我是否必须告诉浏览器不要缓存我的应用程序(不确定如何在blazor上运行),并在性能稳定之前使性能受到影响?还是有一种方法可以在使用某些中间件之类的第一个API调用后强制客户端重新加载?

或者我想念什么吗?

编辑:可能与我使用了Blazor WebAssembly 3.2.0 Preview 2中提供的PWA模板有关。我仍在通过浏览器运行该应用程序,但是启用PWA选项似乎有可能改变了该行为。应用程序,即使将其作为常规网站运行也是如此。

2 个答案:

答案 0 :(得分:5)

由于您的应用程序是PWA,因此您可以在navigator.serviceWorker对象中声明要注册的js文件。该 my.js 文件可以包含const CACHE_VERSION = 1.0。更新此值应强制客户端下载最新文件。有关更多信息,请参见Jeremy Likness'blog post

答案 1 :(得分:0)

如果您正在使用dot net core3.X PWA应用程序,则可以在service-worker.published.js中添加注释,以便在浏览器将其缓存的Service Worker与更新的Service Worker进行比较时,浏览器将跟踪更改并加载新的一个。