IIS 上的随机 Blazor "Failed to find a valid digest in the 'integrity' attribute for resource"



我在加载使用blazor构建和发布的网站时面临一个问题。我得到以下错误消息:

"未能在计算SHA-256完整性的资源'https://MYWEBSITEURL.com/_framework/System.Private.CoreLib.dll'的'完整性'属性中找到有效摘要'xV9SflNt5Ex5gP7OznQorlp2VkdJXkcAiopU+h5DRzY='。资源被阻塞。">

我假设浏览器阻止了文件的下载,因为发布时创建的哈希值不匹配。

没有发布后编辑的文件,也没有涉及git,我从VS 2019发布应用程序,并通过FTP上传到服务器。

然而,模式是随机的。如果我刷新页面几次,它就可以工作,如果我再次刷新页面,它就会再次中断。有时一个资源被阻塞,有时一个都没有,有时10个。

如有任何帮助,不胜感激。

我也有同样的问题,看起来根本原因是浏览器缓存了带有旧散列值的service-worker-assets.js(至少我在Network选项卡上的开发工具中看到,当新版本的SW试图下载新的service-worker-assets.js文件时,它从磁盘缓存中检索)。

查看github问题与@dvallmen发布的潜在解决方案(我还没有在生产中测试)

github.com/dotnet/aspnetcore/issues/39016

解决方案是通过将SW注册为updateViaCache参数设置为none来禁用从HTTP缓存中检索service-worker-assets.js

navigator.serviceWorker.register('/service-worker.js', {updateViaCache: 'none'})

发生这种情况的原因有很多,但其中一个原因是ftp程序在传输过程中修改了文件。要解决这个问题,您可以尝试以下组合:

  1. 选择"保留传输文件的时间戳"。
  2. 尝试将传输类型更改为二进制。

最新更新