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中通过render函数给子组件设置ref操作
Nov 17 Vue.js
vue 插槽简介及使用示例
Nov 19 Vue.js
vue $router和$route的区别详解
Dec 02 Vue.js
vue+element实现动态加载表单
Dec 13 Vue.js
Vue实现点击当前行变色
Dec 14 Vue.js
vue使用vue-quill-editor富文本编辑器且将图片上传到服务器的功能
Jan 13 Vue.js
如何在 Vue 中使用 JSX
Feb 14 Vue.js
vue 中 get / delete 传递数组参数方法
Mar 23 Vue.js
Vue全家桶入门基础教程
May 14 Vue.js
Vue中插槽slot的使用方法与应用场景详析
Jun 08 Vue.js
Vue的生命周期一起来看看
Feb 24 Vue.js
vue ant design 封装弹窗表单的使用
Jun 01 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判断输入不超过mysql的varchar字段的长度范围
2011/06/24 PHP
使用PHP编写的SVN类
2013/07/18 PHP
标准PHP的AES加密算法类
2015/03/12 PHP
PHP环境中Memcache的安装和使用
2015/11/05 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
PHP实现的多维数组去重操作示例
2018/07/21 PHP
PHPstorm启用自动换行的方法详解(IDE)
2020/09/17 PHP
JavaScript 序列化对象实现代码
2009/12/18 Javascript
广泛收集的jQuery拖放插件集合
2012/04/09 Javascript
jquery移除、绑定、触发元素事件使用示例详解
2014/04/10 Javascript
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
2014/06/30 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
微信小程序 参数传递详解
2016/10/24 Javascript
bootstrap表单示例代码分享
2017/05/18 Javascript
vue.js实现二级菜单效果
2019/10/19 Javascript
微信小程序实现同时上传多张图片
2020/02/03 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
python中cPickle用法例子分享
2014/01/03 Python
Python MySQLdb Linux下安装笔记
2015/05/09 Python
Python max内置函数详细介绍
2016/11/17 Python
python处理Excel xlrd的简单使用
2017/09/12 Python
解决python中无法自动补全代码的问题
2018/12/04 Python
python样条插值的实现代码
2018/12/17 Python
python3 enum模块的应用实例详解
2019/08/12 Python
python和php哪个更适合写爬虫
2020/06/22 Python
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
Radley英国官网:英国莱德利小狗包
2019/03/21 全球购物
C语言笔试题回忆
2015/04/02 面试题
车间统计员岗位职责
2014/01/05 职场文书
《哪吒闹海》教学反思
2014/02/28 职场文书
拆迁委托协议书
2014/09/15 职场文书
企业党建工作总结2015
2015/05/26 职场文书
忠诚与背叛观后感
2015/06/04 职场文书