千古八方的博客

  • 程序开发
    • Android
    • Spring Boot
  • 数据私有化
    • NAS
    • 私有云
    • 内网穿透
    • 服务器
  • 留言
  • 搞事
进学
为学无间断,如流水行云,日进而不已也
  1. 首页
  2. Spring Boot
  3. 正文

Springboot从2.1.4升级到2.7.2后,访问静态资源,提示 page not found

2022年7月28日 708点热度 0人点赞 0条评论

使用org.owasp dependency-check-maven依赖库进行安全检查的时候发现springboot 、swagger的版本太低,所以需要升级组件。

升级过程、升级过程中遇到的错误及解决方法如下:

1. SpringBoot 升级:

把Springboot从2.1.4升级到2.7.2稳定版,升级完成后重启服务,在访问html、css、js等静态资源的时候,提示Page not found 。

直接访问前端html页面提示404,  访问swagger2.1.7也是报404错误,但是接口访问正常。

解决方法如下,新建实现WebMvcConfigurer 接口的子类,增加静态资源路径。

@Configuration
public class StaticResourceConfigurer implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 解决静态资源无法访问的问题
        registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");   
        // 解决升级swagger3.0.3后,swagger无法访问的问题
        registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

 


2. Swagger 升级:

同时也升级了swagger的版本,在查看 Knife4j 的官网说明时,发现Knife4j的新版本已经内置了Springfox。

所以可以把 springfox-swagger2、springfox-swagger-ui库删除掉,只需引用Knife4j库即可。

友情提示

1、目前已经发行的Knife4j版本,Knife4j本身已经引入了springfox,开发者在使用时不用再单独引入Springfox的具体版本,否额会导致版本冲突。另外在网关层聚合(例如gateway)时,必须禁用Knife4j的增强模式

引入Knife4j库如下:

 <!--swagger接口文档页面 Knife4j本身已经引入了springfox -->
<!--如果开发者使用OpenAPI3的结构,底层框架依赖springfox3.0.0,可以考虑Knife4j的3.x版本-->
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>3.0.3</version>
</dependency>

同时还需要在swagger配置类上添加@EnableWebMvc注解,如下:

@Configuration
@EnableSwagger2
@EnableWebMvc
public class ApiSwaggerConfig {
     // ignore
}

否则swagger 会报 Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException 的错误。

另外还需要在WebMvcConfigurer 添加swagger的webjars 和doc.html 这两个静态资源路径(见第一步)。否则还是报找不到静态资源的问题。

标签: Spring Boot
最后更新:2022年7月28日

千古八方

物格而后知至,知至而后意诚,意诚而后心正

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

千古八方

物格而后知至,知至而后意诚,意诚而后心正

最新 热点 随机
最新 热点 随机
火狐下远离内容农场的方法! 中国城市生活成本查询 Debian11 系统备份与灾备盘制作 Debian logwatch 自定义配置文件,根据规则忽略掉某些日志内容 Ampache 5.0 报错 The root Ampache folder has changed to ./public socat 正反向传输文件
留言板 Haproxy搭配NPS内网穿透,获取客户端的源IP 自建NAS,动态IPv6,DDNS解决方案 实现秒开1Mbps带宽的NAS上的网站 自建NAS,如何备份数据? Nextcloud 预览图与文件名不一致的解决方法
分类
  • Android
  • Linux
  • NAS
  • Spring Boot
  • Windows
  • 内网穿透
  • 回忆
  • 基于NEAT的瞎几把寻思算法笔记
  • 散篇
  • 普通人的致富之路在哪里
  • 服务器
  • 未分类
  • 私有云
标签聚合
NPS Android Utils linux ubuntu 群晖NAS Spring Boot Nextcloud 安全维护 内网穿透 TrueNAS 服务器 NAS 私有云 我开源的APP Android Widgets Android系统编译 散篇 Windows
工具/友链

资源导航 – NAS、私有云存储
在线工具 – MD5、SHA、BASE64、URL编解码
在线工具 – 贷款计算器
在线工具 – IPv4/IPv6地址查询

千古八方 在 B站

千古八方 在 知乎

我的微信小程序:
微信小程序-城市生活成本查询
城市生活成本查询
库房物资流水记账簿
最近评论
Avatar photo
千古八方 发布于 1 个月前(12月28日) 重置命令是Nextcloud提供的,和哪个平台没关系。 如果报错,一般是路径或权限的问题导致的。 ...
Avatar photo
aron 发布于 1 个月前(12月24日) 博主你好 我的nextcloud管理员密码过期了 用了occ命令重置但是报错,能请教下是什么原因...
Avatar photo
千古八方 发布于 2 个月前(12月15日) 贝塞尔这个类在这里 https://gitee.com/aityu/AndroidUtils/blo...
Avatar photo
disco 发布于 2 个月前(12月05日) 有demo链接吗?贝塞尔曲线这个关键类没有写出来~
Avatar photo
HJM 发布于 3 个月前(10月20日) 必须点赞!很有效!

COPYRIGHT © 2022 千古八方的博客. ALL RIGHTS RESERVED.

京ICP备14020471号