Blazor WebAsssembly 客户端应用程序不刷新并且不使用最新代码

Blazor WebAsssembly client app does not refresh and does not use the latest code

如何确保 Blazor 客户端应用程序的用户始终加载最新版本的代码?我现在必须指示他们在每次发布新版本时清除浏览器缓存。这阻碍了“尽早且经常发布”的方法,我简直不敢相信,如果不在启动时检查新版本(点击一次应用程序执行的操作),任何严肃的 Blazor 开发都是可能的。

我在 https://docs.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

但这对我来说太神秘了?我怎样才能像“for dummies”一样实施上述解决方案?

答案很简单(一旦你知道): 在 wwwroot 文件夹下的 index.html 中,您会发现:

  <script>navigator.serviceWorker.register('service-worker.js');</script>

写在下面:

 <script>navigator.serviceWorker.register('version.js');</script>

并在此文件夹中创建一个“version.js”文件,内容为:

const CACHE_VERSION = 1.0

每次您希望客户加载新版本时增加 1.0 值。

看起来像这样:

一旦您的客户设法清除缓存并加载包含此代码的版本,只需重新加载或关闭并重新启动浏览器即可激活新版本。