如何确保 Blazor 客户端应用程序的用户始终加载最新版本的代码?我现在必须指示他们在每次发布新版本时清除浏览器缓存。这阻碍了“尽早且经常发布”的方法,我根本无法相信,如果在启动时不检查新版本(应用程序执行后单击什么),任何严肃的 blazor 开发都是可能的。
我在https://learn.microsoft.com/en-us/answers/questions/214424/blazor-wpa-not-updating.html
上找到了这个解决方案/**
* Register Service Worker
*/
navigator.serviceWorker
.register('/***.js', { scope: '/' })
.then(() => {
console.log('Service Worker Registered');
});
This js file can contain a cache version like below.
const CACHE_VERSION = 1.0
但这对我来说太神秘了?我如何实现上述“傻瓜式”解决方案?
答案(一旦你知道了)非常简单: 在
index.html
文件夹下的wwwroot
中,您将找到:
<script>navigator.serviceWorker.register('service-worker.js');</script>
在下面写下:
<script>navigator.serviceWorker.register('version.js');</script>
并在此文件夹中创建一个包含单一内容的“version.js”文件:
const CACHE_VERSION = 1.0
每次您希望客户端加载新版本时,请增加
1.0
值。
一旦您的客户端成功清除缓存并加载包含此代码的版本,只需重新加载或关闭并重新启动浏览器即可使新版本处于活动状态。