将 visual studio 升级到 16.10.0 后拒绝加载 _framework/aspnetcore-browser-refresh.js

Refused to load _framework/aspnetcore-browser-refresh.js after upgrading visual studio to 16.10.0

我正在处理 .net 5 blazor wasm 项目。我最近将 Visual Studio 2019 更新为 16.10.0 版本。突然间,我的浏览器开始收到一条错误消息 (Google Chrome) console,如下所示:

Refused to load the script 'https://localhost:44340/_framework/aspnetcore-browser-refresh.js' because it violates the following Content Security Policy directive: "script-src 'sha256-fa5rxHhZ799izGRP38+h4ud5QXNT0SFaFlh4eqDumBI='". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.

我的 index.html 中没有添加 _framework/aspnetcore-browser-refresh.js。这是我的 index.html

中的脚本和样式声明

stylesindex.html 中的 <head> 中声明:

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <title>App</title>
    <base href="/" />
    <link href="css/site.css" rel="stylesheet" />
    <link href="Web.styles.css" rel="stylesheet">
    <link href="_content/BlazorDateRangePicker/daterangepicker.min.css" rel="stylesheet" />
    <link href="manifest.json" rel="manifest" />
    <link rel="apple-touch-icon" sizes="512x512" href="icon-512.png" />
</head>

scriptsindex.html:

<script src="_content/Microsoft.AspNetCore.Components.WebAssembly.Authentication/AuthenticationService.js"></script>
<script src="_framework/blazor.webassembly.js"></script>
<script src="js/Chart.js"></script>
<script src="js/print.js"></script>
<script src="js/pdf.js"></script>
<script src="_content/BlazorDateRangePicker/clickAndPositionHandler.js"></script>
<script src="js/blazorInterop.js"></script>
<script>navigator.serviceWorker.register('service-worker.js');</script>

但是当我通过 visual studio 启动应用程序时,我可以从浏览器中看到 _framework/aspnetcore-browser-refresh.js 被附加到我的 index.html 中的脚本部分。这是屏幕打印。

这与我的配置错误有关吗?或者我需要在 index.html 中设置 CSP?请协助。

看起来像 /_framework/aspnetcore-browser-refresh.js 脚本 belongs to a new Hot Reload 功能。

由于升级导致某些东西被破坏,因为消息:it violates the following Content Security Policy directive: "script-src 'sha256-fa5rxHhZ799izGRP38+h4ud5QXNT0SFaFlh4eqDumBI='" 说你有 CSP script-src 'sha256-fa5rxHhZ799izGRP38+h4ud5QXNT0SFaFlh4eqDumBI=',但同时你加载了很多脚本:

<script src="_content/Microsoft.AspNetCore.Components.WebAssembly.Authentication/AuthenticationService.js"></script>
<script src="_framework/blazor.webassembly.js"></script>
<script src="js/Chart.js"></script>
<script src="js/print.js"></script>
<script src="js/pdf.js"></script>
<script src="_content/BlazorDateRangePicker/clickAndPositionHandler.js"></script>
<script src="js/blazorInterop.js"></script>
<script>navigator.serviceWorker.register('service-worker.js');</script>

至少你需要在 script-src 指令中包含 'self'。此外,sha256-fa5rxHhZ799izGRP38+h4ud5QXNT0SFaFlh4eqDumBI= 哈希值与您的 navigator.serviceWorker.register('service-worker.js') 的 hash 不匹配;内联脚本。

你应该在控制台中有很多 CSP 错误。