使用springdoc-openapi-starter-webmvc-ui后访问swagger-ui/index.html 报错404

按照官网说明,引入 springdoc-openapi-starter-webmvc-ui后应该就可以直接访问swagger-ui.html或者swagger-ui/index.html就可以出现swagger页面了,但是我引入后,访问提示报错404.

在我的项目中,有其他依赖间接引入了org.webjars:swagger-ui,但是,这个jar包的版本必须和springdoc-openapi-starter-webmvc-ui声明的一致,否则默认配置就会无法找到静态资源。可以在springdoc-openapi-starter-common这个依赖的根目录找到springdoc.config.properties配置文件,如果里面写的和实际项目引入的不一致,就会出问题。

可以通过调整依赖,让他们一致,或者在application.yaml中设置变量springdoc.swagger-ui.version=引入的版本

### 解决 SpringDoc OpenAPI WebMVC UI 路径访问报错 404 的方法 当遇到 `springdoc-openapi-starter-webmvc-ui` 访问路径返回 404 错误时,通常是因为应用程序未能正确加载或配置 Swagger UI 页面。以下是几种可能的原因及其解决方案: #### 配置依赖项 确保项目中已正确定义并引入了必要的 Maven 或 Gradle 依赖项。对于 Maven 用户来说,应该在项目的 pom.xml 文件内添加如下依赖[^1]: ```xml <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>${swagger3.version}</version> </dependency> ``` #### 设置正确的上下文路径 默认情况下,SpringDocSwagger UI 映射到 `/swagger-ui.html` 地址上[^2]。如果应用部署在一个特定的子路径下,则需调整此设置以匹配实际环境中的根URL。 可以在 application.properties 中指定自定义路径来覆盖默认行为: ```properties springdoc.swagger-ui.path=/custom-swagger-path ``` #### 启用端点暴露 有时安全配置可能会阻止某些敏感接口被公开访问。为了允许外部请求到达Swagger文档页面,在 security configuration 类里适当放开权限是非常重要的。例如通过 SecurityConfig.java 添加下面这段代码可以开放所有静态资源以及 API 文档的相关 URL 模式: ```java import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/v3/api-docs/**", "/swagger-ui/**").permitAll() // 放开 swagger ui 和 api docs 接口 ... } ``` #### 清理缓存与重启服务 最后但同样重要的是,尝试清理浏览器缓存后再重新启动整个 Spring Boot 应用程序实例。这有助于排除由于旧版本文件残留所引起的潜在冲突问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值