.NET 5.0 API配置Swagger后访问/swagger返回404问题求助
问题根因
你在UseSwaggerUI配置中设置了c.RoutePrefix = string.Empty;,这行配置会将Swagger UI的默认访问前缀从/swagger修改为站点根路径,因此访问/swagger会返回404,你访问应用的根地址(如http://localhost:<运行端口>)即可正常打开Swagger UI页面。
解决方案
根据你的使用需求二选一即可:
- 如果你希望保留
/swagger作为Swagger UI的访问入口,直接删除c.RoutePrefix = string.Empty;这行配置,恢复默认路由前缀即可。 - 如果你确实需要将Swagger UI放在站点根路径访问,直接访问应用启动后的根地址即可,不需要额外加
/swagger后缀。
额外检查项(针对你提到的API版本控制配置)
如果你启用了API版本控制,需要确认你已经完成了Swagger与版本控制的适配配置,避免后续多版本迭代时出现异常:
- 确认已安装
Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer包,用于自动发现API版本 - 多版本场景下需要在
AddSwaggerGen中遍历所有API版本生成对应的SwaggerDoc节点,当前你仅使用v1版本时不会触发该类问题。
内容的提问来源于stack exchange,提问作者Woody1193
相关产品推荐
相关产品推荐

