dotnet应用运行后Swagger UI endpoint view字符逐个换行如何修复

Swagger UI Endpoint路径逐字符换行修复方案
问题根因
该问题由Swagger UI样式异常导致:负责展示请求路径的.opblock-summary-path类的word-break属性被错误设置为break-all,或是white-space属性被设为normal,强制文本逐字符换行,最终显示区域尺寸异常过大。
修复步骤
方案1:注入自定义CSS覆盖异常样式(适用于Swashbuckle.AspNetCore组件)
- 在项目
wwwroot目录下新建swagger文件夹,在文件夹内创建custom.css文件,写入以下样式规则:
/* 修复路径逐字符换行问题 */ .opblock-summary-path { white-space: nowrap !important; word-break: keep-all !important; } .opblock-summary-method { white-space: nowrap !important; } /* 可选配置:路径过长时自动显示省略号,避免撑宽页面 */ .opblock-summary-path-container { overflow: hidden; text-overflow: ellipsis; }
- 在项目启动配置中添加自定义样式注入逻辑:
如果你使用.NET 6及以上版本,修改Program.cs中SwaggerUI的配置:
如果你使用.NET 5及更早版本,修改app.UseSwaggerUI(c => { // 保留你原有SwaggerUI的配置,新增下面一行 c.InjectStylesheet("/swagger/custom.css"); });Startup.cs的Configure方法中对应的SwaggerUI配置即可。 - 确保项目已开启静态文件中间件,
Program.cs或Startup.cs中存在app.UseStaticFiles();配置,且该配置顺序在UseSwaggerUI之前。
方案2:升级Swagger相关NuGet包
旧版本的Swashbuckle.AspNetCore存在已知的样式bug,直接升级对应包到最新稳定版即可自动修复:
- 右键项目选择「管理NuGet程序包」
- 找到
Swashbuckle.AspNetCore、Swashbuckle.AspNetCore.SwaggerUI两个包,升级到最新稳定版后重新运行项目验证。
临时验证方法
如果需要先确认问题根源,可打开浏览器F12开发者工具,选中Endpoint路径的DOM元素,手动添加white-space: nowrap;word-break: keep-all;样式,若显示恢复正常,即可确认是样式问题,按上述两种方案处理即可。
内容的提问来源于stack exchange,提问作者Damion Silver
相关产品推荐
相关产品推荐

