# 前端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` 前缀