4.0 KiB
4.0 KiB
前端API路径修复说明
问题描述
- 错误URL:
https://ad.ningmuyun.com/api/government/government/positions - 问题: URL中出现两个
government,导致路径重复 - 影响范围: 政府端管理系统所有政府相关API接口
问题根因分析
1. 前端API配置问题 ❌
在 government-admin/src/utils/api.js 中,政府相关的API接口缺少 /api 前缀:
原始错误配置:
// 部门管理
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. 路径构造过程
- 前端baseURL:
http://localhost:5352/api(开发环境) - API调用:
instance.get('/government/positions') - 实际请求:
http://localhost:5352/api/government/positions✅ 正确
但在生产环境中:
- 前端baseURL:
https://ad.ningmuyun.com(生产环境) - API调用:
instance.get('/government/positions') - 实际请求:
https://ad.ningmuyun.com/government/positions❌ 缺少/api前缀 - nginx匹配: 匹配到
location ^~ /government/(静态文件规则) - 重定向: 可能被重写为
/api/government/government/positions❌ 重复
解决方案
修复前端API配置
将所有政府相关API接口添加 /api 前缀:
// 部门管理
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 |
✅ 正确 |
验证步骤
-
重新构建前端项目:
cd government-admin npm run build -
部署到生产环境:
- 将构建后的文件部署到服务器
- 确保nginx配置正确
-
测试API接口:
# 测试岗位接口 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 前缀