访问 Swagger 遇到 404

2022-05-09  本文已影响0人  hemiao3000

曾经遇到过,故此有了这篇笔记。但是同样的代码,未做如下配置,后来却又能正常访问。

这是因为,当你访问 .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 ,即可看到上面的配置信息。

上一篇下一篇

猜你喜欢

热点阅读