peixue-dev/Archive/[一次性]轮播图404错误修复-2026-01-27.md

126 lines
2.6 KiB
Markdown
Raw Permalink Normal View History

2026-02-28 17:26:03 +08:00
# 轮播图404错误修复
时间2026-01-27
## 问题描述
后台管理系统的轮播图管理页面显示"请求的资源不存在"404错误无法加载轮播图列表。
## 问题原因
**API路径重复添加了 `/api` 前缀**
- `request.js` 中已配置:`baseURL: '/api'`
- 代码中又写了:`url: '/api/banner/admin/list'`
- 实际请求URL变成`/api/api/banner/admin/list` ❌
这导致后端无法找到对应的接口返回404错误。
## 修复方案
### 修复的文件
1. **peidu/admin/src/views/content/banner.vue**
2. **peidu/admin/src/api/content.js**
### 修复内容
移除所有API调用中多余的 `/api` 前缀:
#### 修复前 ❌
```javascript
// 获取列表
url: '/api/banner/admin/list'
// 创建
url: '/api/banner'
// 更新
url: `/api/banner/${id}`
// 删除
url: `/api/banner/${id}`
// 更新状态
url: `/api/banner/${id}/status`
```
#### 修复后 ✅
```javascript
// 获取列表
url: '/banner/admin/list'
// 创建
url: '/banner'
// 更新
url: `/banner/${id}`
// 删除
url: `/banner/${id}`
// 更新状态
url: `/banner/${id}/status`
```
### 实际请求URL
修复后,由于 `baseURL: '/api'`实际请求的完整URL为
- GET `/api/banner/admin/list` - 获取轮播图列表 ✅
- POST `/api/banner` - 创建轮播图 ✅
- PUT `/api/banner/{id}` - 更新轮播图 ✅
- DELETE `/api/banner/{id}` - 删除轮播图 ✅
- PUT `/api/banner/{id}/status` - 更新状态 ✅
这些路径与后端Controller定义完全匹配。
## 验证步骤
1. 刷新后台管理系统的轮播图管理页面
2. 应该能正常显示轮播图列表
3. 测试新增、编辑、删除、启用/禁用功能
## 经验教训
### 问题根源
在使用axios时如果已经配置了 `baseURL`就不应该在具体的API调用中再次添加这个前缀。
### 最佳实践
1. **统一管理baseURL**:在 `request.js` 中配置一次
2. **API路径规范**:具体调用时只写相对路径
3. **代码审查**:检查是否有重复的路径前缀
### 正确的使用方式
```javascript
// request.js
const service = axios.create({
baseURL: '/api', // 统一配置
timeout: 10000
})
// API调用
request({
url: '/banner/list', // 只写相对路径
method: 'get'
})
// 实际请求:/api/banner/list ✅
```
## 相关文件
- 修复的文件:
- `peidu/admin/src/views/content/banner.vue`
- `peidu/admin/src/api/content.js`
- 配置文件:
- `peidu/admin/src/utils/request.js`
- 后端接口:
- `peidu/backend/src/main/java/com/peidu/controller/BannerController.java`
---
**状态**: ✅ 已修复
**测试**: ⏳ 待用户验证