ASP.NET6中Swashbuckle.AspNetCore5.5.1的Swagger-UI无法升级至4.14.2以上
ASP.NET6中Swashbuckle 5.5.1升级Swagger-UI到4.14.2+的解决方法
问题根源
Swashbuckle.AspNetCore 5.x版本默认捆绑的是Swagger-UI 3.x,所以哪怕你把Swashbuckle NuGet包更到5.5.1,UI版本还是停留在3.x,要用上4.14.2以上的UI,得手动替换静态资源。
操作步骤
获取高版本Swagger-UI静态文件
下载Swagger-UI 4.14.2及以上版本的发布包,解压后取出dist文件夹里的所有内容(包含html、css、js等文件)。在项目中放置静态资源
在ASP.NET6项目根目录创建wwwroot/swagger目录(如果没有的话),把刚才取出的所有文件复制到这个目录下。修改Swagger中间件配置
打开Program.cs,修改UseSwaggerUI的配置,指定使用自定义的UI资源:app.UseSwaggerUI(options => { options.SwaggerEndpoint("/swagger/v1/swagger.json", "你的API版本名称"); // 注入自定义的UI样式和脚本 options.InjectStylesheet("/swagger/swagger-ui.css"); options.InjectJavascript("/swagger/swagger-ui-bundle.js"); options.InjectJavascript("/swagger/swagger-ui-standalone-preset.js"); // 设置Swagger-UI的访问路径前缀 options.RoutePrefix = "swagger"; });验证结果
启动项目,打开Swagger-UI页面,用你之前的方法检测版本,确认已经升级到4.14.2以上。
注意点
- 复制文件时要确保
dist里的所有文件都放到wwwroot/swagger下,别漏了任何一个。 - 后续如果升级Swashbuckle.AspNetCore包,要留意别让默认的UI资源覆盖了你自定义的文件,必要时重新替换一遍。
内容的提问来源于stack exchange,提问作者Shashwat Singh
相关产品推荐
相关产品推荐

