当前位置:   article > 正文

解决vue、springboot项目打包后刷新出现404的问题_vuej集成到springboot后页面刷新404

vuej集成到springboot后页面刷新404

1. 问题背景

vue项目打包后放入springboot的static文件夹里,首先访问首页,然后在里面进行任何页面跳转都是没有问题的,但是假如在非首页的任何一个页面点击刷新,就会报错

2. 问题原因

主要问题在于:由vue开发的应用,采用的是SPA单页面模式

  • 传统的多页面模式,每一个页面对应一个html文件,当我们刷新页面的时候,会主动向后端请求对应的html文件,拿到html文件后渲染界面,但是SPA单页面模式只有一个index.html入口文件,后续的界面跳转都是通过js控制路由跳转实现的
  • 比如,现在想直接访问localhost:9999/login界面,,像后台发送了html问价请求,然而后台并没有login.html这一个html文件,所以就会返回如下的错误,正确的做法应该是:当我们直接输入localhost:9999/login路径时,先将页面重定向到localhost:9999/index.html,然后通过js控制路由实现跳转

3. 问题的解决

在springboot的项目下新建一个error的package,再新建一个ErrorConfig的类,设置出现错误界面时重定向到index.html

package com.example.error;
import org.springframework.boot.web.server.ErrorPageRegistrar;
import org.springframework.boot.web.server.ErrorPage;
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);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

关于SPA可以看我的下一篇博客

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

闽ICP备14008679号