【流程】——若依项目前后端打包发布到服务器

打包发布

后端项目的打包发布

  1. 修改端口

    在admin模块的application.yml中修改后端端口

    还是这个文件,把redis配置页改一下


    2. 修改数据库连接

    在application-druid.yml中修改数据库连接

  • 打包后端文件

    双击生命周期的package

    生成目录的jar路径,会在打包时会在控制台打印出来

    在这个目录下运行java -jar jia-admin.jar,下面有RY的图标就代表打包的jar包能做出运行

  • 发布后端项目

    1. 上传项目

      将项目上传到宝塔文件的/www/wwwroot/xxx文件下面

    2. 创建项目

      创建为java项目并添加jdk信息(你可以下载宝塔里面的jdk,而可以上传自己的jdk)

    3. 解决日志路径不匹配问题

      然后项目报错如图,分析了一下大概是说我服务器没有若依配置中的日志存储路径

      就是我们在admin模块的logback.xml的日志存放路径设置,你可以在服务器创建/home/ruoyi/logs这个路径,或者改为服务器已经存在的路径

      yml 复制代码
      <!-- 日志存放路径 -->
      <property name="log.path" value="/home/ruoyi/logs" />

      重新启动项目,并能启动成功,并能访问服务器的swagger文档http://your-sever:8002/swagger-ui/index.html,就代表后端项目发布成功(在开发阶段可以开发测试文档的访问,正式部署记得关闭)

前端项目的打包发布

  • 修改测试环境的后端服务路径

    在前端根目录下的vite.config.js文件,将your-server改为你的后端服务器地址(如果端口部署8002),的话,也可以改,但是前面也说了,这是这个配置只有在测试环境生效

    js 复制代码
    server: {
      port: 80,
      host: true,
      open: true,
      proxy: {
         // https://cn.vitejs.dev/config/#server-proxy
         '/dev-api': {
          	target: 'http://your-server:8002',
          	// target: 'https://api.wzs.pub/mock/13',
          	changeOrigin: true,
          	rewrite: (p) => p.replace(/^\/dev-api/, '')
         }
      }
    },
  • 不同的环境

    在前端项目根目录下,有如下环境配置文件

    其中.env.development内容如图,开发环境的地址为/dev-api,被我们上面的vite.config.js代理转发了

    复制代码
    # 页面标题
    VITE_APP_TITLE = 气Π的demo
    
    # 开发环境配置
    VITE_APP_ENV = 'development'
    
    # 若依管理系统/开发环境
    VITE_APP_BASE_API = '/dev-api'
    • 生产环境和预发布 / 测试的区别

      对比维度 .env.production(生产环境) .env.staging(预发布 / 测试环境)
      环境标识 VITE_APP_ENV = 'production' VITE_APP_ENV = 'staging'
      API 基础路径 VITE_APP_BASE_API = '/prod-api' VITE_APP_BASE_API = '/stage-api'
      构建命令 npm run build(默认加载该配置) npm run build:stage(通过 --mode staging 加载)
      核心作用场景 正式部署上线,面向最终用户使用 预发布测试、功能验证、环境适配测试
      配置应用范围 生产环境 API 连接、正式部署 URL 路径配置 预发布环境 API 连接、测试环境 URL 路径配置
  • 修改测试环境的后端服务路径

    我们这里就直接用生产环境打包了,配置.env.production,将下面的/prod-api改为http/https + your-server

    复制代码
    # 若依管理系统/生产环境
    VITE_APP_BASE_API = '/prod-api'

    然后运行打包命令npm run build,将项目的打包文件(项目根目录下的dist文件夹),放到宝塔文件夹中,

    然后创建php站点如下,域名可以选择IP地址格式或者已经解析的域名,根目录选择上面的dist文件夹,下面的配置不用改

  • 解决内容混合问题

    一般的同学用IP地址格式解析配置的话不会遇到这个问题,但如果你绑定了SSL证书和域名,而且http和https混用就会导致内容混合问题,浏览器控制台报错如下

    这玩意就有点复杂了,但是我相信看到这里的各位基本上都有点东西了,我又就不藏着掖着了

    1. 首先,你得需要域名是吧,取阿里或腾讯注册一个,然后进行子域名划分(域名云解析),如图(记录值就是你的服务器的主机地址)

    2. 然后对前后端进行域名配置(要和你上面域名划分的要一样)

    3. 绑定了域名,就可以申请免费的Lets Encrypt证书,然后勾选域名就可以申请了,很简单

      申请好证书后可以开启强制https访问

      然后者时候就有人会问了,Lets Encrypt证书有效期只有三个月,到期了怎么办,有的孩子,有的,宝塔有任务计划,可以自动执行证书续签脚本,只有执行周期小于三个月就可以实现永久续杯。

    4. 外网映射

      这个在后端项目(我们这里是java)中才有,开启的前提是后端项目配置域名。它的功能有的像反向代理,可以转发重写,没有特殊要求的话就直接写/(域名请求全部映射到8002端口)

      然后改一下前端打包环境的请求路径为域名,后端配置一下跨域设置,就跨域成功运行项目啦。

相关推荐
方方怪2 小时前
数据库 SQL 语句大全
数据库·sql·oracle
代码游侠2 小时前
复习——Linux 系统编程
linux·运维·c语言·学习·算法
共绩算力2 小时前
给 TRAE SOLO 一台服务器,它能干什么?
运维·服务器
正在走向自律2 小时前
从Oracle到金仓KES:PL/SQL兼容性与高级JSON处理实战解析
数据库·sql·oracle·json·金仓数据库·电科金仓·兼容性挑战
DKunYu2 小时前
3.负载均衡-LoadBalance
java·运维·spring cloud·微服务·负载均衡
2401_831501732 小时前
Devops之Docker安装和使用
运维·docker·devops
cyhysr2 小时前
oracle的model子句让sql像excel一样灵活
数据库·sql·oracle
码界奇点2 小时前
基于Django与Zabbix集成的运维故障管理系统设计与实现
运维·django·毕业设计·zabbix·源代码管理
longxibo2 小时前
Ubuntu datasophon1.2.1 二开之二:解决三大监控组件安装后,启动失败:报缺失common.sh
大数据·linux·运维·ubuntu