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

问题描述 投票:0回答:2

如何确保 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

但这对我来说太神秘了?我如何实现上述“傻瓜式”解决方案?

blazor-webassembly
2个回答
4
投票

答案(一旦你知道了)非常简单: 在

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
值。

看起来像这样:

一旦您的客户端成功清除缓存并加载包含此代码的版本,只需重新加载或关闭并重新启动浏览器即可使新版本处于活动状态。


© www.soinside.com 2019 - 2024. All rights reserved.