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

ASP.Net Core 6中Swagger无法加载自定义CSS的问题排查

ASP.NET Core 6 Web API Swagger自定义CSS加载失败解决方法

核心问题

你将custom.css设为Embedded resource,但当前使用的UseStaticFiles()仅负责读取wwwroot目录下的静态资源,两者机制不匹配,导致Swagger无法定位到你的自定义样式文件。

两种修正方案

方案一:切换为静态文件模式(推荐,配置更简单)

  1. 将项目中的swagger-ui文件夹移动到wwwroot目录下(如果项目没有wwwroot,直接新建该目录)
  2. 保留UseStaticFiles()的原有配置,SwaggerUI的注入代码无需修改:
c.InjectStylesheet("/swagger-ui/custom.css");
  1. 将custom.css的生成操作改为Content,复制到输出目录设置为如果较新则复制

方案二:继续使用嵌入式资源

若要坚持用嵌入式资源,需添加嵌入式文件的访问配置:

  1. 在builder.Build()之前,添加以下代码配置嵌入式文件服务:
// 替换下面的命名空间为你的项目实际命名空间,比如"MyWebApi.swagger-ui"
var embeddedFileProvider = new EmbeddedFileProvider(
    typeof(Program).Assembly,
    "你的项目命名空间.swagger-ui"
);

builder.Services.Configure<StaticFileOptions>(options =>
{
    options.FileProvider = embeddedFileProvider;
});
  1. 确保custom.css的生成操作保持为Embedded resource
  2. SwaggerUI的注入路径不变:c.InjectStylesheet("/swagger-ui/custom.css");

验证步骤

  • 启动项目后,直接访问https://localhost:你的端口/swagger-ui/custom.css,如果能看到CSS内容,说明路径配置正确
  • 打开浏览器开发者工具(F12)的网络面板,查看custom.css的请求状态,若返回404,需检查路径或文件配置是否有误
  • 确认UseStaticFiles()在UseSwaggerUI()之前调用,中间件顺序不能颠倒

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 01:16:12