Files
nxxmdata/government-backend/前端API路径修复说明.md
2025-10-17 17:29:11 +08:00

4.0 KiB
Raw Blame History

前端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. 路径构造过程

  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 前缀:

// 部门管理
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. 重新构建前端项目:

    cd government-admin
    npm run build
    
  2. 部署到生产环境:

    • 将构建后的文件部署到服务器
    • 确保nginx配置正确
  3. 测试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 前缀