曾经遇到过,故此有了这篇笔记。但是同样的代码,未做如下配置,后来却又能正常访问。
这是因为,当你访问 .html 等静态资源时,Spring MVC 默认是在你自己项目的 resources/static
目录下去找它们,如果没有,自然就是 404 。
而 swagger 相关的 .html 等静态资源是在你所依赖、所包含的 swagger-ui 项目<small>(jar包)</small> 下
swagger-01.png所以,你需要通过静态资源配置来『告诉』Spring MVC 当收到 swagger 相关的静态资源访问时,去指对应的这个目录下找它们。
@Configuration
@EnableOpenApi
public class SwaggerConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/swagger-ui/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/");
}
/* 非必须
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/swagger-ui/")
.setViewName("forward:/swagger-ui/index.html");
}
*/
...
}
配置完成之后启动项目,在浏览器中输入网址 http://localhost:8080/swagger-ui/index.html ,即可看到上面的配置信息。
网友评论