修改小程序
This commit is contained in:
126
government-backend/前端API路径修复说明.md
Normal file
126
government-backend/前端API路径修复说明.md
Normal file
@@ -0,0 +1,126 @@
|
||||
# 前端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` 前缀
|
||||
Reference in New Issue
Block a user