SpringBoot+Vue 前后端合并部署的配置方法


Posted in Vue.js onDecember 30, 2020

前后端分离开发项目

前端vue项目

服务端springboot项目

如何将vue的静态资源整合到springboot项目里,通过启动jar包的方式部署服务。

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

SpringBoot+Vue 前后端合并部署的配置方法

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

SpringBoot+Vue 前后端合并部署的配置方法

对应的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下的请求地址是否成功再进行排查。

到此这篇关于SpringBoot+Vue 前后端合并部署的文章就介绍到这了,更多相关SpringBoot+Vue 合并部署内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
Vue3配置axios跨域实现过程解析
Nov 25 Vue.js
Vue中inheritAttrs的使用实例详解
Dec 31 Vue.js
vue 实现图片懒加载功能
Dec 31 Vue.js
vue中使用echarts的示例
Jan 03 Vue.js
手写Vue源码之数据劫持示例详解
Jan 04 Vue.js
Vue中ref和$refs的介绍以及使用方法示例
Jan 11 Vue.js
vue登录页实现使用cookie记住7天密码功能的方法
Feb 18 Vue.js
vue首次渲染全过程
Apr 21 Vue.js
使用这 6个Vue加载动画库来减少我们网站的跳出率
May 18 Vue.js
Vue如何清空对象
Mar 03 Vue.js
vue修饰符.capture和.self的区别
Apr 22 Vue.js
vue @click.native 绑定原生点击事件
Apr 22 Vue.js
vue中实现点击空白区域关闭弹窗的两种方法
Dec 30 #Vue.js
梳理一下vue中的生命周期
Dec 30 #Vue.js
Vue实现简易购物车页面
Dec 30 #Vue.js
利用Vue实现简易播放器的完整代码
Dec 30 #Vue.js
vue+element UI实现树形表格
Dec 29 #Vue.js
vue实现树状表格效果
Dec 29 #Vue.js
vue实现图书管理系统
Dec 29 #Vue.js
You might like
php正则校验用户名介绍
2008/07/19 PHP
php获取url字符串截取路径的文件名和扩展名的函数
2010/01/22 PHP
PHP中的访问修饰符简单比较
2019/02/02 PHP
Laravel Eloquent ORM 多条件查询的例子
2019/10/10 PHP
javascript中的prototype属性实例分析说明
2010/08/09 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
JS简单实现文件上传实例代码(无需插件)
2013/11/15 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
JS添加删除DIV的简单实例
2016/07/08 Javascript
bootstrap datetimepicker日期插件使用方法
2017/01/13 Javascript
vue之数据交互实例代码
2017/06/16 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
js+canvas实现验证码功能
2020/09/21 Javascript
微信小程序实现签到功能
2018/10/31 Javascript
详解ES6 Fetch API HTTP请求实用指南
2018/11/14 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
2020/07/20 Javascript
[51:06]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第二场 1月26日
2021/03/11 DOTA
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
2014/06/04 Python
python入门教程之识别验证码
2017/03/04 Python
python常用知识梳理(必看篇)
2017/03/23 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
Python学习_几种存取xls/xlsx文件的方法总结
2018/05/03 Python
详解python里的命名规范
2018/07/16 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
Django外键(ForeignKey)操作以及related_name的作用详解
2019/07/29 Python
np.dot()函数的用法详解
2020/01/17 Python
Pandas时间序列:时期(period)及其算术运算详解
2020/02/25 Python
纯css3实现走马灯效果
2014/12/26 HTML / CSS
来自南加州灵感的工作和娱乐服装:TravisMathew
2019/05/01 全球购物
J2EE是技术还是平台还是框架
2016/08/14 面试题
结婚十年感言
2015/07/31 职场文书
初中英语教学随笔
2015/08/15 职场文书
市场营销计划书
2019/04/24 职场文书
浅谈Redis主从复制以及主从复制原理
2021/05/29 Redis
Python数据分析之pandas读取数据
2021/06/02 Python
详解Go语言运用广度优先搜索走迷宫
2021/06/23 Python