1. 项目概述
RuoYi-Vue是一款基于Spring Boot和Vue.js的前后端分离权限管理系统框架,在企业级后台管理系统开发中广泛应用。Windows环境下的完整部署涉及前后端环境配置、数据库初始化、依赖安装等多个环节,需要系统性地解决环境变量配置、端口冲突、依赖版本兼容等典型问题。
作为长期从事企业级系统部署的开发者,我发现Windows平台下的RuoYi-Vue部署存在几个关键痛点:Node.js与Java环境变量冲突、Redis服务自启动配置复杂、Nginx代理规则易错等。本文将基于最新稳定版本(RuoYi-Vue 3.8.5),通过实测验证的步骤,带你完整走通从零开始到系统可访问的全流程。
2. 环境准备与工具安装
2.1 基础软件清单
部署所需的核心组件及推荐版本:
- JDK 17(Amazon Corretto版本)
- Node.js 16.14.2 LTS
- Redis 6.2.6 Windows版
- MySQL 8.0.33 Community Edition
- Maven 3.8.6
- Nginx 1.23.3 Stable
注意:避免使用JDK 20+版本,已知与Spring Boot 2.7.x存在兼容性问题。Redis必须使用6.x版本,5.x版本会导致RedisTemplate序列化异常。
2.2 关键配置要点
-
Java环境配置:
bash复制# 系统环境变量新增 JAVA_HOME=C:\Program Files\Amazon Corretto\jdk17.0.8_8 Path追加 %JAVA_HOME%\bin -
Node.js多版本管理:
建议使用nvm-windows管理Node版本:powershell复制nvm install 16.14.2 nvm use 16.14.2 -
Redis服务化(管理员权限运行):
powershell复制redis-server --service-install redis.windows.conf --loglevel verbose sc config Redis start= auto
3. 后端部署实战
3.1 数据库初始化
-
创建数据库并导入SQL:
sql复制CREATE DATABASE `ruoyi` DEFAULT CHARACTER SET utf8mb4; USE `ruoyi`; source /path/to/ruoyi-vue/sql/ry_20230223.sql; source /path/to/ruoyi-vue/sql/quartz.sql; -
修改应用配置(ruoyi-admin/src/main/resources/application.yml):
yaml复制datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: 你的密码 redis: host: 127.0.0.1 port: 6379 password: database: 0
3.2 编译与启动
-
使用Maven打包:
bash复制cd ruoyi-admin mvn clean package -DskipTests -
启动Spring Boot应用:
bash复制
java -jar target/ruoyi-admin.jar
常见问题:若出现"Failed to configure a DataSource"错误,检查MySQL服务是否启动,以及application.yml中的缩进格式(必须使用空格,不能含Tab)
4. 前端部署详解
4.1 依赖安装与构建
-
解决Node-sass编译问题:
bash复制npm install --global windows-build-tools npm config set msvs_version 2019 -
安装项目依赖:
bash复制cd ruoyi-ui npm install --registry=https://registry.npmmirror.com -
修改API代理配置(vue.config.js):
javascript复制devServer: { proxy: { '/prod-api': { target: `http://localhost:8080`, changeOrigin: true, pathRewrite: { '^/prod-api': '' } } } }
4.2 生产环境部署
-
构建静态资源:
bash复制
npm run build:prod -
Nginx配置示例:
nginx复制server { listen 80; server_name localhost; location / { root /path/to/ruoyi-ui/dist; index index.html; try_files $uri $uri/ /index.html; } location /prod-api/ { proxy_pass http://localhost:8080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
5. 系统验证与故障排查
5.1 基础功能测试
-
访问验证:
- 前端地址:http://localhost
- 后端API文档:http://localhost:8080/swagger-ui.html
- 默认账号:admin/admin123
-
健康检查接口:
bash复制
curl http://localhost:8080/actuator/health
5.2 典型问题解决方案
-
Redis连接失败:
- 检查Windows防火墙是否放行6379端口
- 确认redis.windows.conf中未绑定特定IP(注释掉bind 127.0.0.1)
-
前端路由404:
- 确保Nginx配置包含try_files $uri $uri/ /index.html
- 检查dist目录是否包含index.html
-
跨域问题:
- 后端添加@CrossOrigin注解
- 或统一在Nginx配置CORS头:
nginx复制add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Methods' '*'; add_header 'Access-Control-Allow-Headers' '*';
6. 生产环境优化建议
-
JVM参数调整:
bash复制
java -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -jar ruoyi-admin.jar -
静态资源CDN加速:
修改vue.config.js:javascript复制module.exports = { publicPath: process.env.NODE_ENV === 'production' ? 'https://cdn.yourdomain.com/static/' : '/', } -
数据库连接池优化(application.yml):
yaml复制spring: datasource: hikari: maximum-pool-size: 20 minimum-idle: 5 connection-timeout: 30000 idle-timeout: 600000
在多次部署实践中,我发现Windows环境下的路径分隔符问题(\ vs /)最容易导致配置文件读取失败。建议所有路径配置都采用Linux风格(/),同时在Java启动参数中添加:
bash复制-Dfile.encoding=UTF-8 -Dspring.config.location=file:/path/to/application.yml
