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

.NET 8 Blazor发布后CSS文件丢失,出现404错误求助

问题描述

开发全新的.NET 8 Blazor应用时,使用dotnet watch或dotnet run能正常运行,但执行dotnet publish -c Release发布后,启动发布版本(执行dotnet path/to/app/Blazor.Host.dll)时出现CSS等静态文件404错误,所有静态文件都无法正常加载。已尝试新建应用复现,问题依旧,复现步骤如下:

  • 终端执行dotnet new blazor -o ./Blazor.Host
  • 执行cd ./Blazor.Host
  • 执行dotnet publish
  • 执行dotnet path/to/app/Blazor.Host.dll
解决方案

核心原因:工作目录不匹配

直接运行dotnet path/to/app/Blazor.Host.dll时,终端当前工作目录并非发布输出的根目录,导致应用无法定位到wwwroot文件夹下的静态资源。

方案1:切换到发布目录后运行

  1. 打开终端,导航至发布输出的根目录(通常为./Blazor.Host/bin/Release/net8.0/publish/)
  2. 执行命令:
dotnet Blazor.Host.dll

方案2:指定工作目录运行

无需切换目录,通过--working-dir参数指定发布输出的根目录:

dotnet --working-dir ./Blazor.Host/bin/Release/net8.0/publish/ Blazor.Host.dll

方案3:验证发布输出结构

确认发布目录下存在wwwroot文件夹,且内部包含css/、js/等静态文件。若资源缺失,重新执行发布命令:

dotnet publish -c Release

方案4:确认静态文件中间件配置

打开Program.cs,确保以下代码存在且顺序正确(新建Blazor应用默认已包含):

var builder = WebApplication.CreateBuilder(args);

// 添加必要服务
builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();

var app = builder.Build();

// 静态文件中间件必须在路由配置之前
app.UseStaticFiles();

if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Error");
    app.UseHsts();
}

app.UseHttpsRedirection();
app.MapBlazorHub();
app.MapFallbackToPage("/_Host");

app.Run();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 00:05:07