3.2 KiB
3.2 KiB
部署说明
问题解决
文件上传问题修复
之前程序部署到线上环境后无法上传文件的问题已经修复。主要修改包括:
- 移除硬编码地址:将前端代码中硬编码的
http://localhost:3000地址替换为动态配置 - 环境配置:创建了环境配置文件来管理不同环境的API地址
- 统一图片处理:统一了图片URL的处理逻辑
修改的文件
frontend/src/config/index.js- 新增环境配置文件frontend/.env.development- 开发环境配置frontend/.env.production- 生产环境配置frontend/src/views/Transfers.vue- 转账页面frontend/src/views/Profile.vue- 个人资料页面frontend/src/views/Matching.vue- 匹配页面
部署步骤
1. 前端构建
cd frontend
npm run build
2. 后端部署
确保服务器上有以下目录结构:
/
├── server.js
├── routes/
├── middleware/
├── uploads/ # 文件上传目录
├── frontend/dist/ # 前端构建文件
└── admin/dist/ # 管理后台构建文件
3. 环境变量配置
在生产环境中,确保以下环境变量正确设置:
# 数据库配置
DB_HOST=your_db_host
DB_USER=your_db_user
DB_PASSWORD=your_db_password
DB_NAME=your_db_name
# 服务器配置
PORT=3000
NODE_ENV=production
4. 文件权限
确保 uploads 目录有正确的读写权限:
chmod 755 uploads
chown -R www-data:www-data uploads # 根据你的服务器用户调整
5. Nginx 配置(推荐)
如果使用 Nginx 作为反向代理,配置示例:
server {
listen 80;
server_name your-domain.com;
# 静态文件
location /uploads/ {
alias /path/to/your/app/uploads/;
expires 1d;
add_header Cache-Control "public, immutable";
}
# API 请求
location /api/ {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# 前端应用
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
6. PM2 部署(推荐)
使用 PM2 管理 Node.js 进程:
# 安装 PM2
npm install -g pm2
# 启动应用
pm2 start server.js --name "your-app"
# 设置开机自启
pm2 startup
pm2 save
验证部署
- 访问网站确保页面正常加载
- 测试用户注册/登录功能
- 测试文件上传功能(头像、收款码、转账凭证等)
- 检查浏览器控制台是否有错误
故障排除
文件上传失败
- 检查
uploads目录权限 - 检查服务器磁盘空间
- 查看服务器日志:
pm2 logs your-app
图片显示不正常
- 检查 Nginx 静态文件配置
- 确认图片文件存在于
uploads目录 - 检查图片URL是否正确
API 请求失败
- 检查服务器是否正常运行
- 检查数据库连接
- 查看服务器错误日志