.NET 8 HealthCheckUI图标加载404问题求助
解决.NET 8中HealthCheckUI图标404的问题
1. 确认安装必要NuGet包
确保项目已安装以下包:
AspNetCore.HealthChecks.UIAspNetCore.HealthChecks.UI.ClientAspNetCore.HealthChecks.UI.InMemory.Storage
可通过命令行安装:
dotnet add package AspNetCore.HealthChecks.UI dotnet add package AspNetCore.HealthChecks.UI.Client dotnet add package AspNetCore.HealthChecks.UI.InMemory.Storage
2. 添加静态文件中间件并配置嵌入式资源访问
在Program.cs中,所有端点映射(如MapHealthChecks、MapHealthChecksUI)之前添加静态文件中间件,同时配置HealthCheckUI的嵌入式资源提供者:
// 启用默认静态文件支持 app.UseStaticFiles(); // 配置HealthCheckUI嵌入式静态资源的访问 app.UseStaticFiles(new StaticFileOptions { FileProvider = new EmbeddedFileProvider( typeof(HealthChecksUIOptions).Assembly, "HealthChecks.UI") });
3. 调整HealthCheckUI端点配置
保持健康检查API和UI端点的配置正确,完整示例如下:
// 注册HealthChecksUI服务 services.AddHealthChecksUI() .AddInMemoryStorage(); // 映射健康检查API端点 app.MapHealthChecks("/api/health", new HealthCheckOptions { ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse }); // 映射HealthCheckUI界面端点 app.MapHealthChecksUI(setup => { setup.ApiPath = "/api/health"; // 指定UI调用的健康检查API路径 setup.UIPath = "/healthchecks-ui"; // UI访问路径,默认值可自定义 });
4. 验证效果
启动项目后,访问配置的UI路径(默认是/healthchecks-ui),图标等静态资源即可正常加载,不再返回404。
额外注意
- Web API模板默认未启用
UseStaticFiles,必须手动添加,否则无法访问任何静态资源。 UseStaticFiles必须在端点映射之前调用,否则静态资源请求会被端点路由拦截导致404。
内容的提问来源于stack exchange,提问作者MrZ
相关产品推荐
相关产品推荐

