You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core Web API与React应用合并部署报错排查与解决

.NET 8 Web API合并React部署时wwwroot文件报错的解决方法

错误原因

你添加的.csproj配置误触发了.NET的Blazor静态资源编译逻辑——哪怕你没用到Blazor,一旦配置里包含了针对Razor组件/JS模块的规则(比如错误使用<RazorComponent>、<JSModule>标签,或开启了Razor编译选项),.NET会把wwwroot里的React静态文件当成Blazor组件关联的JS模块,又找不到对应的Razor组件,因此抛出该错误。

解决步骤

  1. 修正.csproj的静态资源配置
    删除所有和Blazor、Razor组件相关的配置项,只保留正确的静态资源发布规则:

    <ItemGroup>
      <Content Include="wwwroot\**" CopyToPublishDirectory="PreserveNewest" />
    </ItemGroup>
    

    这个配置会将wwwroot下所有文件纳入发布包,且保留最新版本。

  2. 移除Blazor相关依赖和配置

    • 检查项目NuGet包,移除Microsoft.AspNetCore.Components、Microsoft.AspNetCore.Components.Web等Blazor相关包;
    • 检查Program.cs(.NET 8已替代Startup.cs),删除AddBlazor()、MapBlazorHub()之类的Blazor服务配置代码。
  3. 清理并重新编译项目
    执行以下命令清除编译缓存,避免残留逻辑干扰:

    dotnet clean
    dotnet build
    

后续静态资源配置

解决报错后,在Program.cs中添加静态文件服务配置,确保React资源能被正确访问:

// 启用默认文件(优先返回index.html)
app.UseDefaultFiles();
// 启用静态文件服务,托管wwwroot下的资源
app.UseStaticFiles();

// 注意:这两个配置要放在API路由配置(比如app.MapControllers())之前,确保静态文件请求先被处理

内容的提问来源于stack exchange,提问作者user734119

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 06:52:07