146 lines
3.2 KiB
Markdown
146 lines
3.2 KiB
Markdown
|
|
# 部署说明
|
|||
|
|
|
|||
|
|
## 问题解决
|
|||
|
|
|
|||
|
|
### 文件上传问题修复
|
|||
|
|
|
|||
|
|
之前程序部署到线上环境后无法上传文件的问题已经修复。主要修改包括:
|
|||
|
|
|
|||
|
|
1. **移除硬编码地址**:将前端代码中硬编码的 `http://localhost:3000` 地址替换为动态配置
|
|||
|
|
2. **环境配置**:创建了环境配置文件来管理不同环境的API地址
|
|||
|
|
3. **统一图片处理**:统一了图片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. 前端构建
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd frontend
|
|||
|
|
npm run build
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 后端部署
|
|||
|
|
|
|||
|
|
确保服务器上有以下目录结构:
|
|||
|
|
```
|
|||
|
|
/
|
|||
|
|
├── server.js
|
|||
|
|
├── routes/
|
|||
|
|
├── middleware/
|
|||
|
|
├── uploads/ # 文件上传目录
|
|||
|
|
├── frontend/dist/ # 前端构建文件
|
|||
|
|
└── admin/dist/ # 管理后台构建文件
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 环境变量配置
|
|||
|
|
|
|||
|
|
在生产环境中,确保以下环境变量正确设置:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 数据库配置
|
|||
|
|
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` 目录有正确的读写权限:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
chmod 755 uploads
|
|||
|
|
chown -R www-data:www-data uploads # 根据你的服务器用户调整
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 5. Nginx 配置(推荐)
|
|||
|
|
|
|||
|
|
如果使用 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 进程:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 安装 PM2
|
|||
|
|
npm install -g pm2
|
|||
|
|
|
|||
|
|
# 启动应用
|
|||
|
|
pm2 start server.js --name "your-app"
|
|||
|
|
|
|||
|
|
# 设置开机自启
|
|||
|
|
pm2 startup
|
|||
|
|
pm2 save
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 验证部署
|
|||
|
|
|
|||
|
|
1. 访问网站确保页面正常加载
|
|||
|
|
2. 测试用户注册/登录功能
|
|||
|
|
3. 测试文件上传功能(头像、收款码、转账凭证等)
|
|||
|
|
4. 检查浏览器控制台是否有错误
|
|||
|
|
|
|||
|
|
## 故障排除
|
|||
|
|
|
|||
|
|
### 文件上传失败
|
|||
|
|
|
|||
|
|
1. 检查 `uploads` 目录权限
|
|||
|
|
2. 检查服务器磁盘空间
|
|||
|
|
3. 查看服务器日志:`pm2 logs your-app`
|
|||
|
|
|
|||
|
|
### 图片显示不正常
|
|||
|
|
|
|||
|
|
1. 检查 Nginx 静态文件配置
|
|||
|
|
2. 确认图片文件存在于 `uploads` 目录
|
|||
|
|
3. 检查图片URL是否正确
|
|||
|
|
|
|||
|
|
### API 请求失败
|
|||
|
|
|
|||
|
|
1. 检查服务器是否正常运行
|
|||
|
|
2. 检查数据库连接
|
|||
|
|
3. 查看服务器错误日志
|