前后端分离项目的部署方法——vue cli4+springboot

本文介绍了两种前后端分离的项目部署方法。方法一是将前端项目打包放入后端项目的静态文件夹,然后部署后端项目;方法二是分别部署前端到web服务器和后端到应用服务器,通过配置nginx实现路由。详细步骤包括前端打包、后端jar包创建以及nginx配置。这两种方法各有优缺点,适用于不同的项目需求和开发者经验水平。

前置条件

首先需要我们写好两个项目(分别是前端和后端的),要写好前后端接口
接口按照我这样写,我这里使用的是axios,使用方法可以参考我的另一篇博客:vue cli4使用axios(通过RAP2生成后端接口)
在这里插入图片描述
这个项目先运行后端再运行前端就可以跑起来了,但是占用了两个端口(前端8080后端8888)
想要变成一个端口就需要接下来的方法

方法一:把前端项目打包,作为后端项目的静态文件,再把后端项目部署在应用服务器中

不推荐,理由很简单:前后端没有完全分离。
但不是完全否定。这种方法用的人也不少,单独运行jar包就能运行整个项目,而且方法比较简单,适合新手

在前端项目根路径使用打包命令npm run build
在这里插入图片描述
可以看到项目中多出了dist文件夹
在这里插入图片描述
将文件夹中的东西复制到后端项目的static文件夹下
在这里插入图片描述
我的项目根路径:http://localhost:8888/vue
如果直接启动项目进入http://localhost:8888/vue/index.html,会报错
在这里插入图片描述
打开index.html,会发现只有一行,将代码格式化(快捷键:CTRL+SHIFT+F)
在这里插入图片描述
可以发现href、rel和src后引用的路径都不对,需要我们修改。
修改后:(就是删除最前面的斜杠 /)
在这里插入图片描述
启动项目,主页面进入成功,数据也成功显示。
如果修改了前端项目需要重新打包再复制到后端项目中。
在这里插入图片描述
想要打成jar包可以参考这篇博客:IDEA中的springboot项目打包成jar包运行

方法二: 把前端项目部署在 web 服务器中,把后端项目部署在应用服务器中

下载nginx
官网: http://nginx.org/en/download.html
选择windows版本下载
在这里插入图片描述
前端项目仍然npm run build
进入nginx安装目录下的html文件夹,我的是D:\environment\nginx-1.21.4\html
把里面的东西全部删除,再把前端项目dist文件夹下的东西复制到html文件夹下
在这里插入图片描述
打开根目录下conf\nginx.conf

找到 server 的配置处,把 listen 80 改为 listen 8081
在这里插入图片描述
如果vue 使用了 history 模式路由
需要将原来默认的 location 注释掉,添加一条 location 配置
这两个分别的原来的和现在的
在这里插入图片描述

#location / {
#    root   html;
#    index  index.html index.htm;
#}

location / {
     try_files $uri $uri/ /index.html;
}

配置完成后,运行 nginx 根目录下的 nginx.exe 即可
访问 http://localhost:8081/ 就可以进入主页了
然后打包后端项目,还是参照这篇博客,但是不需要把前端项目放进来了
IDEA中的springboot项目打包成jar包运行
然后在cmd中运行后端项目
再去访问前端的项目,就可以看到后端数据了。

### 热部署SpringBootVue组成前后端分离项目的实现 #### 后端部分:Spring Boot 的热部署配置 为了实现在开发过程中无需频繁重启服务即可看到代码更改效果的功能,可以借助 **Spring Loaded** 或者 **JRebel** 工具。此外,在 Spring Boot 中也可以利用内置的 `devtools` 组件来快速启用热部署功能。 1. 添加依赖项 在 Maven 项目中的 `pom.xml` 文件里加入如下内容以引入 DevTools[^1]: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> ``` 2. 配置文件调整 确保 IDE 设置允许自动编译源码变更并同步至运行环境。对于 IntelliJ IDEA 用户来说,需打开设置路径 `File -> Settings -> Build, Execution, Deployment -> Compiler` 下勾选选项 “Build project automatically”。另外可以通过快捷键组合 Ctrl+Shift+A 输入 Registry 查找关键字 compiler.automake.allow.when.app.running 并开启该开关[^3]。 #### 前端部分:Vue 开发模式下的实时刷新机制 Vue CLI 提供了一个强大的本地服务器支持 live reload 功能,默认情况下当检测到任何静态资源或者 JavaScript/Vue 模板发生变化时都会触发浏览器页面重载操作从而展示最新改动后的 UI 效果[^4]。 如果希望进一步优化用户体验,则可通过 WebSocket 技术让后端主动推送消息通知前端重新拉取最新的动态数据而不是单纯依靠视图层自身的轮询策略获取更新信息[^5]。 #### 结合实际案例分析 假设存在这样一个场景——管理员后台管理系统需要即时反映商品库存状态变化情况给前台客户查看。此时就可以采用上述提到的技术手段相结合的方式来达成目标: - 当数据库表记录被修改之后(比如调用了某个 RESTful API 接口),立即广播事件告知所有连接着此主题订阅者的客户端; - 客户端接收到信号后再发起请求读取消息队列里的具体内容进而渲染出来显示给最终使用者看。 这样不仅提高了工作效率减少了等待时间还增强了系统的交互性和灵活性。 ```javascript // 示例代码片段 - Vue.js 方法监听来自后端的通知 methods:{ handleWebSocketMessage(data){ console.log('Received new data from server:',data); this.updateUIWithNewData(data); // 更新界面逻辑函数 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值