如何修改Open API规范的YAML文件路径?SpringDoc配置后404求助
解决SpringDoc自定义OpenAPI YAML路径404问题
步骤1:确认静态资源存放位置
将你的open-api.yaml文件放在项目的src/main/resources/static/swagger-ui/目录下,Spring Boot会自动将该目录下的文件作为静态资源对外暴露。
步骤2:调整配置与资源映射
你之前的springdoc.swagger-ui.url配置本身是正确的,但如果文件已放置到位仍出现404,可以添加静态资源映射配置,确保路径能被正确识别:
import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/swagger-ui/**") .addResourceLocations("classpath:/static/swagger-ui/"); } }
步骤3:验证配置有效性
启动项目后,先访问http://{host}:{port}/swagger-ui/open-api.yaml,确认能正常查看或下载该YAML文件;再打开Swagger UI页面(默认路径为/swagger-ui.html),即可验证是否成功加载自定义路径的配置文件。
额外注意事项
- 若YAML文件是通过代码动态生成的,需编写对应的Controller接口处理
/swagger-ui/open-api.yaml请求,返回生成的OpenAPI内容。 - 若项目启用了Spring Security,需确保
/swagger-ui/**路径被允许匿名访问,避免被拦截。
内容的提问来源于stack exchange,提问作者Maurice
相关产品推荐
相关产品推荐

