167 lines
4.3 KiB
Markdown
167 lines
4.3 KiB
Markdown
# 轮播图不显示问题诊断
|
||
|
||
时间:2026-01-27
|
||
|
||
## 问题描述
|
||
|
||
后台管理系统添加轮播图后,界面显示"请求的资源不存在"(404错误)。
|
||
|
||
## 当前配置检查
|
||
|
||
### ✅ 前端配置
|
||
- **baseURL**: `http://localhost:8089/api` (来自 `.env.development`)
|
||
- **API路径**: `/banner/admin/list`
|
||
- **完整URL**: `http://localhost:8089/api/banner/admin/list`
|
||
|
||
### ✅ 后端配置
|
||
- **Controller路径**: `@RequestMapping("/api/banner")`
|
||
- **获取列表接口**: `@GetMapping("/admin/list")`
|
||
- **完整路径**: `/api/banner/admin/list`
|
||
|
||
### ✅ 代码检查
|
||
- BannerController: 正常
|
||
- BannerService: 正常
|
||
- BannerServiceImpl: 正常
|
||
- Banner实体类: 正常
|
||
|
||
## 可能的原因
|
||
|
||
### 1. 后端服务未启动 ⚠️
|
||
**检查方法**:
|
||
```bash
|
||
# 检查8089端口是否被占用
|
||
netstat -ano | findstr :8089
|
||
|
||
# 或者访问健康检查接口
|
||
curl http://localhost:8089/api/health
|
||
```
|
||
|
||
### 2. 后端端口配置不一致 ⚠️
|
||
**检查文件**: `peidu/backend/src/main/resources/application.yml`
|
||
```yaml
|
||
server:
|
||
port: 8089 # 确认端口是否为8089
|
||
```
|
||
|
||
### 3. 数据库中没有banner表 ⚠️
|
||
**检查SQL**:
|
||
```sql
|
||
-- 检查表是否存在
|
||
SHOW TABLES LIKE 'banner';
|
||
|
||
-- 查看表结构
|
||
DESC banner;
|
||
|
||
-- 查询数据
|
||
SELECT * FROM banner;
|
||
```
|
||
|
||
### 4. 编译错误导致后端无法启动 ⚠️
|
||
之前修复了GrowthRecordServiceImpl的编译错误,需要确认编译是否成功。
|
||
|
||
**检查方法**:
|
||
```bash
|
||
cd peidu/backend
|
||
mvn clean compile -DskipTests
|
||
```
|
||
|
||
## 修复步骤
|
||
|
||
### 步骤1:确认后端服务状态
|
||
```bash
|
||
# 进入后端目录
|
||
cd peidu/backend
|
||
|
||
# 编译项目
|
||
mvn clean compile -DskipTests
|
||
|
||
# 如果编译成功,启动服务
|
||
mvn spring-boot:run
|
||
```
|
||
|
||
### 步骤2:检查数据库
|
||
运行SQL检查脚本:`Archive/[一次性]检查banner表-2026-01-27.sql`
|
||
|
||
如果表不存在,需要创建:
|
||
```sql
|
||
CREATE TABLE `banner` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
||
`title` varchar(100) DEFAULT NULL COMMENT '标题',
|
||
`image_url` varchar(500) NOT NULL COMMENT '图片URL',
|
||
`link_type` varchar(20) DEFAULT 'none' COMMENT '链接类型:none-无链接,page-内部页面,url-外部链接',
|
||
`link_url` varchar(500) DEFAULT NULL COMMENT '链接地址',
|
||
`sort_order` int DEFAULT '0' COMMENT '排序',
|
||
`status` tinyint DEFAULT '1' COMMENT '状态:0-禁用,1-启用',
|
||
`start_time` datetime DEFAULT NULL COMMENT '开始时间',
|
||
`end_time` datetime DEFAULT NULL COMMENT '结束时间',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='轮播图表';
|
||
```
|
||
|
||
### 步骤3:添加测试数据
|
||
```sql
|
||
INSERT INTO banner (title, image_url, link_type, link_url, sort_order, status, start_time, end_time)
|
||
VALUES
|
||
('测试轮播图1', '/static/banner/banner1.jpg', 'none', NULL, 1, 1, '2024-01-01 00:00:00', '2030-12-31 23:59:59'),
|
||
('测试轮播图2', '/static/banner/banner2.jpg', 'none', NULL, 2, 1, '2024-01-01 00:00:00', '2030-12-31 23:59:59');
|
||
```
|
||
|
||
### 步骤4:验证API
|
||
使用浏览器或Postman访问:
|
||
```
|
||
GET http://localhost:8089/api/banner/admin/list
|
||
```
|
||
|
||
预期返回:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": [
|
||
{
|
||
"id": 1,
|
||
"title": "测试轮播图1",
|
||
"imageUrl": "/static/banner/banner1.jpg",
|
||
...
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 步骤5:刷新前端页面
|
||
确认后端正常后,刷新后台管理系统的轮播图管理页面。
|
||
|
||
## 快速诊断命令
|
||
|
||
```bash
|
||
# 1. 检查后端是否运行
|
||
curl http://localhost:8089/api/health
|
||
|
||
# 2. 检查轮播图API
|
||
curl http://localhost:8089/api/banner/admin/list
|
||
|
||
# 3. 查看后端日志
|
||
# 在后端运行窗口查看是否有错误信息
|
||
```
|
||
|
||
## 预期结果
|
||
|
||
修复后应该能够:
|
||
1. ✅ 后台管理系统正常显示轮播图列表
|
||
2. ✅ 可以新增、编辑、删除轮播图
|
||
3. ✅ 小程序首页能够加载并显示轮播图
|
||
|
||
## 注意事项
|
||
|
||
1. **端口冲突**:确保8089端口没有被其他程序占用
|
||
2. **数据库连接**:确保数据库配置正确且可以连接
|
||
3. **编译错误**:确保所有Java代码编译通过
|
||
4. **图片路径**:轮播图的图片URL需要是可访问的路径
|
||
|
||
---
|
||
|
||
**下一步操作**:
|
||
请按照上述步骤逐一检查,找出具体问题所在。
|