我很难理解blazor应用程序的问题所在。我有一个客户端blazor,我正在从.net 3.1更新到.net 6。我已经阅读了关于从3.1迁移到6的说明,但当我试图调试应用程序时,它从未加载
"加载资源失败:服务器的响应状态为404()";错误
我在其他帖子中读到过blazor.webassembly.js加载不正确的消息,但我不确定我做错了什么。我已经检查了参考资料是否有任何错误。Api引用在.NET 6上正常运行,共享库使用.NET标准2.0这里有一些代码以备不时之需。
谢谢你抽出时间。
Index.html:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="6.0.5" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="6.0.5" PrivateAssets="all" />
<PackageReference Include="Microsoft.Extensions.Http" Version="6.0.0" />
<PackageReference Include="System.Net.Http.Json" Version="6.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..SkillMatrix.ApiSkillMatrix.Api.csproj" />
<ProjectReference Include="..SkillMatrix.SharedSkillMatrix.Shared.csproj" />
</ItemGroup>
</Project>
Index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>SkillMatrix.Client</title>
<base href="/" />
<link href="css/bootstrap/bootstrap.min.css" rel="stylesheet" />
<link href="css/app.css" rel="stylesheet" />
</head>
<body>
<app>Loading...</app>
<div id="blazor-error-ui">
An unhandled error has occurred.
<a href="" class="reload">Reload</a>
<a class="dismiss"> </a>
</div>
<script src="_framework/blazor.webassembly.js"></script>
</body>
</html>
找到了解决方案。我不得不从更改csproj
<Project Sdk="Microsoft.NET.Sdk.Web">
至
<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
基于这个答案
还要确保项组上的Microsoft.AspNetCore.Components.WebAssembly引用至少设置为6.0.0 版本
将This或Replace复制到wwwroot index.html头标签
<link href="css/bootstrap/bootstrap.min.css" rel="stylesheet" />
<link href="css/app.css" rel="stylesheet" />
<link rel="icon" type="image/png" href="favicon.png" />
<link href="BlazorApp1.Client.styles.css" rel="stylesheet" />
<link href="_content/Syncfusion.Blazor/styles/bootstrap5.css" rel="stylesheet" />
<script src="_content/Syncfusion.Blazor/scripts/syncfusion-blazor.min.js" type="text/javascript"></script>
仅替换<link href="BlazorServer.styles.css" rel="stylesheet" />
到CCD_ 2修复了该问题。
编辑:
对不起,我对BlazorServer
感到困惑,因为我认为它与Blazor Server
模板有关,但它与我使用该名称的Blazor项目的名称有关。我正在将另一个Blazor项目从netcore3.1迁移到net6.0,我在这篇文章中遇到了这个问题,并替换了我上面写的内容,它解决了这个问题。所以,任何有这个问题的人,都需要经常做<link href="AppName.styles.css" rel="stylesheet" />
。