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 相关文章推荐
vue在图片上传的时候压缩图片
Nov 18 Vue.js
Vue中computed和watch有哪些区别
Dec 19 Vue.js
Vue实现摇一摇功能(兼容ios13.3以上)
Jan 26 Vue.js
如何在 Vue 中使用 JSX
Feb 14 Vue.js
Vue包大小优化的实现(从1.72M到94K)
Feb 18 Vue.js
详解vue身份认证管理和租户管理
May 25 Vue.js
vue route新窗口跳转页面并且携带与接收参数
Apr 10 Vue.js
vue项目打包后路由错误的解决方法
Apr 13 Vue.js
vue实现省市区联动 element-china-area-data插件
Apr 22 Vue.js
Vue OpenLayer 为地图绘制风场效果
Apr 24 Vue.js
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
Apr 30 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获取数组中重复最多的元素的实现方法
2014/11/11 PHP
php防止恶意刷新与刷票的方法
2014/11/21 PHP
事件模型在各浏览器中存在差异
2010/10/20 Javascript
深入理解javascript的执行顺序
2014/04/04 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
js判断浏览器是否支持严格模式的方法
2016/10/04 Javascript
简单谈谈ES6的六个小特性
2016/11/18 Javascript
很棒的vue弹窗组件
2017/05/24 Javascript
详解Vue-cli webpack移动端自动化构建rem问题
2018/04/07 Javascript
javascript自定义日期比较函数用法示例
2019/07/22 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
[00:47]TI7不朽珍藏III——沙王不朽展示
2017/07/15 DOTA
python文件操作相关知识点总结整理
2016/02/22 Python
教你利用Python玩转histogram直方图的五种方法
2018/07/30 Python
详解Python中pandas的安装操作说明(傻瓜版)
2019/04/08 Python
Python字符串匹配之6种方法的使用详解
2019/04/08 Python
Pandas之MultiIndex对象的示例详解
2019/06/25 Python
在Django model中设置多个字段联合唯一约束的实例
2019/07/17 Python
使用Tensorflow实现可视化中间层和卷积层
2020/01/24 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
PyTorch-GPU加速实例
2020/06/23 Python
需要知道的CSS3动画技术
2010/01/01 HTML / CSS
int和Integer有什么区别
2013/05/25 面试题
市场营销专业毕业生自荐信
2013/11/02 职场文书
给交警的表扬信
2014/01/12 职场文书
城建学院毕业生自荐信
2014/01/31 职场文书
电子信息专业自荐书
2014/02/04 职场文书
激情洋溢的毕业生就业求职信
2014/03/15 职场文书
跑出一片天观后感
2015/06/08 职场文书
小程序实现筛子抽奖
2021/05/26 Javascript
Python下opencv库的安装过程及问题汇总
2021/06/11 Python
React + Threejs + Swiper 实现全景图效果的完整代码
2021/06/28 Javascript
Go语言空白表示符_的实例用法
2021/07/04 Golang
Python Numpy库的超详细教程
2022/04/06 Python
Java数据结构之堆(优先队列)
2022/05/20 Java/Android