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 19 Vue.js
vue中defineProperty和Proxy的区别详解
Nov 30 Vue.js
浅谈Vue使用Elementui修改默认的最快方法
Dec 05 Vue.js
Vue——前端生成二维码的示例
Dec 19 Vue.js
vue 使用rules对表单字段进行校验的步骤
Dec 25 Vue.js
vue实现简易的双向数据绑定
Dec 29 Vue.js
vue实现图书管理系统
Dec 29 Vue.js
vue element和nuxt的使用技巧分享
Jan 14 Vue.js
Vue仿Bibibili首页的问题
Jan 21 Vue.js
聊聊vue 中的v-on参数问题
Jan 29 Vue.js
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
Jun 09 Vue.js
vue封装数字翻牌器
Apr 20 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 参数过滤、数据过滤详解
2015/10/26 PHP
PHP正则表达式匹配替换与分割功能实例浅析
2017/02/04 PHP
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
jquery插件jquery倒计时插件分享
2013/12/27 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
JQuery中serialize()、serializeArray()和param()方法示例介绍
2014/07/31 Javascript
jsonp跨域请求详解
2017/07/13 Javascript
浅谈vue方法内的方法使用this的问题
2018/09/15 Javascript
mpvue项目中使用第三方UI组件库的方法
2018/09/30 Javascript
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
[03:11]2014DOTA2国际邀请赛-VG掉入败者组 独家专访357
2014/07/19 DOTA
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
Python之str操作方法(详解)
2017/06/19 Python
浅谈python jieba分词模块的基本用法
2017/11/09 Python
python下10个简单实例代码
2017/11/15 Python
python使用opencv在Windows下调用摄像头实现解析
2019/11/26 Python
python装饰器代替set get方法实例
2019/12/19 Python
Python 动态变量名定义与调用方法
2020/02/09 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
2020/02/28 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
2020/05/12 Python
Python 实现敏感目录扫描的示例代码
2020/05/21 Python
python实现简易版学生成绩管理系统
2020/06/22 Python
Python高并发和多线程有什么关系
2020/11/14 Python
突破canvas语法限制 让他支持链式语法
2012/12/24 HTML / CSS
英国最受欢迎的在线隐形眼镜商店:VisionDirect.co.uk
2018/12/06 全球购物
How TDD works
2012/09/30 面试题
个人找工作的自我评价
2013/10/17 职场文书
好矿嫂事迹材料
2014/01/21 职场文书
母亲节感恩寄语
2014/02/21 职场文书
关于教师节的演讲稿
2014/09/04 职场文书
Python Django 后台管理之后台模型属性详解
2021/04/25 Python
react合成事件与原生事件的相关理解
2021/05/13 Javascript