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

打包发布

后端项目的打包发布

  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端口)

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

相关推荐
虎头金猫14 小时前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
AI职业加油站15 小时前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏16 小时前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
-梅17 小时前
linux(8) 软硬链接
linux·运维·服务器
Wang's Blog17 小时前
Java 项目实战: 外卖平台-文件下载与ServletOutputStream回写浏览器
服务器·项目开发
张洛闻Eren17 小时前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
琥珀色糖17 小时前
SimlpeHttp
linux·服务器
其实防守也摸鱼18 小时前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
第十人i18 小时前
Linux 日志管理系统:journald 配置与优化
linux·服务器
布裘18 小时前
【银河麒麟】V4桌面图标消失,右击鼠标没反应排查
运维·银河麒麟·桌面环境