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+iview分页组件的封装
Nov 17 Vue.js
详解Vue 的异常处理机制
Nov 30 Vue.js
vue 动态创建组件的两种方法
Dec 31 Vue.js
vue 项目@change多个参数传值多个事件的操作
Jan 29 Vue.js
vue3.0 自适应不同分辨率电脑的操作
Feb 06 Vue.js
Vue3.0 手写放大镜效果
Jul 25 Vue.js
Vue自定义铃声提示音组件的实现
Jan 22 Vue.js
Vue中Object.assign清空数据报错的解决方案
Mar 03 Vue.js
Vue如何清空对象
Mar 03 Vue.js
一起来看看Vue的核心原理剖析
Mar 24 Vue.js
VUE之图片Base64编码使用ElementUI组件上传
Apr 09 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
destoon实现公司新闻详细页添加评论功能的方法
2014/07/15 PHP
yii2.0之GridView自定义按钮和链接用法
2014/12/15 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
Javascript 通过json自动生成Dom的代码
2010/04/01 Javascript
jquery $.getJSON()跨域请求
2011/12/21 Javascript
Bootstrap导航栏各元素操作方法(表单、按钮、文本)
2015/12/28 Javascript
一个极为简单的requirejs实现方法
2016/10/20 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
手机端转换rem适应
2017/04/01 Javascript
Angular2 http jsonp的实例详解
2017/08/31 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
2017/09/22 Javascript
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
vue+flask实现视频合成功能(拖拽上传)
2021/03/04 Vue.js
[01:02:09]Liquid vs TNC 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21
2020/07/19 DOTA
Python简单实现自动删除目录下空文件夹的方法
2017/08/29 Python
python使用正则表达式替换匹配成功的组
2017/11/17 Python
浅谈Python实现2种文件复制的方法
2018/01/19 Python
Python比较2个时间大小的实现方法
2018/04/10 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
python3格式化字符串 f-string的高级用法(推荐)
2020/03/04 Python
支持IE8的纯css3开发的响应式设计动画菜单教程
2014/11/05 HTML / CSS
HTML5声音录制/播放功能的实现代码
2018/05/03 HTML / CSS
福克斯租车:Fox Rent A Car
2017/04/13 全球购物
乌克兰机票、铁路和巴士票、酒店搜索、保险:Tickets.ua
2020/01/11 全球购物
用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别
2012/11/04 面试题
自考毕业生自我鉴定
2013/11/04 职场文书
公务员转正考察材料
2014/02/07 职场文书
经典婚礼主持开场白
2014/03/13 职场文书
广播节目策划方案
2014/05/23 职场文书
无私奉献演讲稿
2014/09/04 职场文书
2014年学习部工作总结
2014/11/12 职场文书
学校食品安全责任书
2015/01/29 职场文书
会议新闻稿
2015/07/17 职场文书
JS轻量级函数式编程实现XDM二
2022/06/16 Javascript