Vue打包文件dist放在SpringBoot项目下运行(正确实现全过程)(下)

在上一篇中,实现了Vue打包文件dist放在SpringBoot项目下运行。

Vue打包文件dist放在SpringBoot项目下运行(正确实现全过程)(上)

问题

路由刷新会产生404的问题。

原因

vue开发的应用,采用的是SPA单页面模式

每一个页面对应一个html文件,当刷新页面的时候,会主动向后端请求对应的html文件,拿到html文件后渲染界面,但是SPA单页面模式只有一个index.html入口文件,后续的界面跳转都是通过js控制路由跳转实现的。

解决

当我们直接输入/login路径时,先将页面重定向到/index.html,然后通过js控制路由实现跳转就可以了。

项目中增加配置

java 复制代码
import org.springframework.boot.web.server.ErrorPage;
import org.springframework.boot.web.server.ErrorPageRegistrar;
import org.springframework.boot.web.server.ErrorPageRegistry;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;

@Component
public class ErrorConfig implements ErrorPageRegistrar {

    @Override
    public void registerErrorPages(ErrorPageRegistry registry) {
        ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/index.html");
        registry.addErrorPages(error404Page);
    }
}

项目重启后,刷新就可以了。

相关推荐
liuyang___8 分钟前
分享一下这几天在公司学到的东西
前端
rocky19110 分钟前
谷歌浏览器插件 录制菜单路由跳转行为 事件重复解决方案
前端·javascript
佳腾_13 分钟前
【web服务_负载均衡Nginx】一、Nginx 基础与核心概念解析
前端·nginx·负载均衡
前鼻音太阳熊14 分钟前
【Spring Boot 应用开发】-06 自动配置-生成配置元数据
java·spring boot·后端
风中飘爻19 分钟前
MySQL入门:数据操作CURD
前端·bootstrap·html
rocky19127 分钟前
谷歌浏览器插件 录制元素拖动事件
前端·javascript
emoji1111111 小时前
vue3、原生html交互传值
vue.js·html·交互
nothingbutluck4641 小时前
2025.4.10 html有序、无序、定义列表、音视频标签
前端·html·音视频
牛马baby1 小时前
Springboot 自动装配原理是什么?SPI 原理又是什么?
java·spring boot·后端
爱上python的猴子1 小时前
chrome中的copy xpath 与copy full xpath的区别
前端·chrome