Files
nxxmdata/government-backend/前端API路径修复说明.md

127 lines
4.0 KiB
Markdown
Raw Normal View History

2025-10-17 17:29:11 +08:00
# 前端API路径修复说明
## 问题描述
- **错误URL**: `https://ad.ningmuyun.com/api/government/government/positions`
- **问题**: URL中出现两个`government`,导致路径重复
- **影响范围**: 政府端管理系统所有政府相关API接口
## 问题根因分析
### 1. 前端API配置问题 ❌
`government-admin/src/utils/api.js`政府相关的API接口缺少 `/api` 前缀:
**原始错误配置**:
```javascript
// 部门管理
departments: {
getList: (params) => instance.get('/government/departments', { params })
},
// 岗位管理
positions: {
getList: (params) => instance.get('/government/positions', { params })
},
// 养殖户管理
farmers: {
getList: (params) => instance.get('/government/farmers', { params }),
create: (data) => instance.post('/government/farmers', data),
// ... 其他方法
}
```
### 2. 路径构造过程
1. **前端baseURL**: `http://localhost:5352/api` (开发环境)
2. **API调用**: `instance.get('/government/positions')`
3. **实际请求**: `http://localhost:5352/api/government/positions` ✅ 正确
但在生产环境中:
1. **前端baseURL**: `https://ad.ningmuyun.com` (生产环境)
2. **API调用**: `instance.get('/government/positions')`
3. **实际请求**: `https://ad.ningmuyun.com/government/positions` ❌ 缺少 `/api` 前缀
4. **nginx匹配**: 匹配到 `location ^~ /government/` (静态文件规则)
5. **重定向**: 可能被重写为 `/api/government/government/positions` ❌ 重复
## 解决方案
### 修复前端API配置
将所有政府相关API接口添加 `/api` 前缀:
```javascript
// 部门管理
departments: {
getList: (params) => instance.get('/api/government/departments', { params })
},
// 岗位管理
positions: {
getList: (params) => instance.get('/api/government/positions', { params })
},
// 养殖户管理
farmers: {
getList: (params) => instance.get('/api/government/farmers', { params }),
create: (data) => instance.post('/api/government/farmers', data),
update: (id, data) => instance.put(`/api/government/farmers/${id}`, data),
delete: (id) => instance.delete(`/api/government/farmers/${id}`),
resetPassword: (id) => instance.post(`/api/government/farmers/${id}/reset-password`)
},
// 养殖类型相关
farmTypes: {
getList: () => instance.get('/api/government/farm-types')
},
// 养殖种类相关
animalTypes: {
getList: () => instance.get('/api/government/animal-types')
},
// 智能项圈管理
collars: {
getList: (params) => instance.get('/api/government/collars', { params }),
create: (data) => instance.post('/api/government/collars', data),
update: (id, data) => instance.put(`/api/government/collars/${id}`, data),
delete: (id) => instance.delete(`/api/government/collars/${id}`)
}
```
## 修复后的路径映射
| 前端调用 | 生产环境URL | nginx匹配 | 后端路由 | 状态 |
|---------|------------|----------|---------|------|
| `/api/government/departments` | `https://ad.ningmuyun.com/api/government/departments` | `^~ /api/government/` | `/api/government/departments` | ✅ 正确 |
| `/api/government/positions` | `https://ad.ningmuyun.com/api/government/positions` | `^~ /api/government/` | `/api/government/positions` | ✅ 正确 |
| `/api/government/farmers` | `https://ad.ningmuyun.com/api/government/farmers` | `^~ /api/government/` | `/api/government/farmers` | ✅ 正确 |
## 验证步骤
1. **重新构建前端项目**:
```bash
cd government-admin
npm run build
```
2. **部署到生产环境**:
- 将构建后的文件部署到服务器
- 确保nginx配置正确
3. **测试API接口**:
```bash
# 测试岗位接口
curl https://ad.ningmuyun.com/api/government/positions
# 测试部门接口
curl https://ad.ningmuyun.com/api/government/departments
```
## 相关文件
- `government-admin/src/utils/api.js` - 前端API配置文件
- `government-backend/_etc_nginx_conf.d_ningmuyun_one.conf` - nginx配置文件
## 修复时间
2024年12月19日
## 修复状态
✅ 已修复 - 前端API配置已更新添加了正确的 `/api` 前缀