当前位置:   article > 正文

SpringBoot配置knife4j版的Swagger打开doc.html页面404_knife4j doc.html静态文件访问不了

knife4j doc.html静态文件访问不了

项目原因:

  最近搭建一个新的SpringBoot项目,需要配置Swagger,从其他项目里拷过来knife4j版的Swagger配置文件,结果打开doc.html显示404,如下图:

 在官网和其他地方一顿搜,始终没解决。官网推荐的方法是:https://doc.xiaominfo.com/guide/springboot-404.html

因为doc.html是在jar包里的,需要使用资源处理器注册静态资源。

  1. @SpringBootApplication
  2. public class SwaggerBootstrapUiDemoApplication implements WebMvcConfigurer{
  3. @Override
  4. public void addResourceHandlers(ResourceHandlerRegistry registry) {
  5. registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
  6. registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
  7. }
  8. }

官方的补充说明是:如果你是使用的老的版本SpringBoot,通过继承WebMvcConfigurationSupport来扩展SpringBoot相关的配置,则把以上配置加在相应的addResourceHandlers方法中即可

  在我的WebMvcConfigurer配置类里,加上上面这段代码不好用。

遇到这种情况请先查找,最近有没有添加的类继承了WebMvcConfigurationSupport,则在配置文件在中配置的相关内容会失效,需要重新指定静态资源。

结果我在本地代码一搜,果然有一个类继承了WebMvcConfigurationSupport,我把这个类改成实现WebMvcConfigurer接口,再加上官方推荐的这段代码,访问doc.html恢复正常。

  看来问题还是新旧版本SpringBoot配置文件 WebMvcConfigurationSupport类 和 WebMvcConfigurer接口之间有冲突,项目中还是只用一个就好了。

解决:WebMvcConfigurationSupport和WebMvcConfigurer 不能一起用,否则swagger配置就不生效404.

 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/83557
推荐阅读
相关标签
  

闽ICP备14008679号