SpringBoot+Vue 前后端合并

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

SpringBoot+Vue 前后端合并

加了冰的才叫可乐   2020-12-30 我要评论

前后端分离开发项目

前端vue项目

服务端springboot项目

如何将vue项目整合到springboot项目里,同步启动jar包到方式部署服务。

前端项目执行npm run build 命令进行打包,会自动生成打包后的dist目录文件所有东西放置在Resources/static文件下,如下图

 

 

   

此处index.html文件的资源路径(需要在前端打包配置中进行配置)应该如下图:

   

对应的springboot:application.yml需添加:

server:
    port: 8080
    tomcat:
        uri-encoding: UTF-8
spring:
    application:
        name: "xxxx"
    servlet:
        application-display-name: myProject
    mvc:
        static-path-pattern: /static/**

为了解决 vue-router路由的路径无法正常解析

将vue-router中的路径加上统一的前缀“/vueXX”(自定义),然后在springboot项目中自定义过滤器,拦截带“/vueXX”的路径,将请求转发到“/index.html”(将vue的路由资源交给路由处理)。

启动类中需添加:

public class MyProJect {
	public static void main(String[] args) {
		SpringApplication.run(MyProJect.class,args);
	}
	@Bean
	public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer(){
		return factory -> {
			ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/static/index.html");
			factory.addErrorPages(error404Page);
		};
	}
}

 

如果在项目中配置了过滤器:需要在过滤器中去除对应的资源文件后缀的过滤条件。

配置至此,启动项目应该是可以访问到页面。可以在浏览器打开调试工具,查看NetWork下的请求地址是否成功再进行排查。

 

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们