localhost:8080/swagger-ui.html 访问不到 addResourceHandlers springmvc资源处理请求放行swagger

无法访问swagger-ui.html

  • 在swagger2.0+中可以用如下配置

解决办法:SpringMVC配置文件修改如下

/**
 * mvc配置
 */
@EnableWebMvc
@Configuration
public class SpringMVCConfig implements WebMvcConfigurer {
。。。。

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations( "classpath:/static/");
        /*放行swagger*/
//        registry.addResourceHandler("swagger*").addResourceLocations("classpath:/META-INF/resources/webjars/");

        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        /*html这个文件存储在springfox-swagger-ui-2.9.2.jar!\META-INF\resources\swagger-ui.html*/
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
        /*必须将springfox-swagger-ui-2.9.2.jar!\META-INF\resources\webjars\下的文件也进行放行*/
    }

   。。。。
}
  • 关键是加入下面这一段
registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        /*html这个文件存储在springfox-swagger-ui-2.9.2.jar!\META-INF\resources\swagger-ui.html*/
registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
        /*必须将springfox-swagger-ui-2.9.2.jar!\META-INF\resources\webjars\下的文件也进行放行*/

原因,为什么要这样?

localhost:8080/swagger-ui.html 访问不到 addResourceHandlers springmvc资源处理请求放行swagger_第1张图片

  • classpath:/META-INF/resources/ 映射到springfox-swagger-ui-2.9.2.jar!\META-INF\resources\下的文件(包含了swagger-ui.html)

  • classpath:/META-INF/resources/webjars/映射到springfox-swagger-ui-2.9.2.jar!\META-INF\resources\webjars\

  • 从swagger-ui.html代码中看到,href访问的路径为webjars,相当于localhost:8080/webjars,所以必须将/webjars/也加上,不然webjars文件夹下的文件是不能被swagger-ui.html所访问到的

<link rel="icon" type="image/png" href="webjars/springfox-swagger-ui/favicon-32x32.png?v=2.9.2" sizes="32x32" />
  <link rel="icon" type="image/png" href="webjars/springfox-swagger-ui/favicon-16x16.png?v=2.9.2" sizes="16x16" />

你可能感兴趣的:(swagger,SpringBoot,SpringMVC,html,java)