6.9 KiB
6.9 KiB
甲辰藏品管理系统 v1.0.1 发布说明
发布日期: 2026-03-16
版本: v1.0.1
前置版本: v1.0.0
分支: main
🎯 版本亮点
1. Logo 显示问题修复 🐉
问题描述:
- 藏品详情页面图片加载失败时显示 Logo,导致所有无图片的藏品都显示 Logo
- 用户体验混淆,无法区分"无图片"和"图片加载失败"
解决方案:
- 修改
frontend/src/pages/Detail.jsx的onError处理逻辑 - 图片加载失败时显示"无图片"占位符,不再显示 Logo
- Logo 仅在登录页、首页等指定位置显示
代码变更:
// 修复前
onError={(e) => { e.target.src = '/static/images/jiachenlong-logo.png'; }}
// 修复后
onError={(e) => {
e.target.style.display = 'none';
e.target.parentElement.innerHTML = '<div>无图片</div>';
}}
影响范围:
- ✅ 藏品详情页图片显示
- ✅ 藏品列表页图片显示
- ✅ Logo 使用规范化
2. 图片代理问题修复 🔧
问题描述:
- 前端服务器 Nginx 配置中,图片扩展名 location 优先级高于
/uploads - 导致
.jpg/.jpeg文件在本地/var/www/html/查找,而不是代理到后端 - 所有藏品图片返回 404 错误
根本原因:
# ❌ 错误配置(图片扩展名 location 优先级过高)
location /uploads {
proxy_pass http://backend:3000/uploads;
}
location ~* \.(jpg|jpeg|png)$ { # 这个优先级更高!
expires 1y;
}
解决方案:
- 调整 Nginx location 优先级,
/uploads移到图片扩展名 location 之前 - 图片扩展名 location 只处理字体文件(woff、ttf 等)
- 前端静态图片使用
/static/路径单独处理
代码变更:
# ✅ 正确配置
# 1. 字体文件缓存(不影响图片)
location ~* \.(js|css|woff|woff2|ttf|eot)$ {
expires 1y;
}
# 2. 图片上传文件代理(优先级最高)
location /uploads {
proxy_pass http://47.110.37.129:3000/uploads;
client_max_body_size 20M;
}
# 3. 前端静态图片(/static/ 目录)
location ~* ^/static/.*\.(png|jpg|jpeg|gif|ico|svg)$ {
expires 1y;
}
影响范围:
- ✅ 藏品详情图片显示
- ✅ 图片预览弹窗
- ✅ 图片切换功能
3. 后端图片数据加载修复 📊
问题描述:
get_collections()API 函数中'images': []是硬编码的空数组- 藏品列表 API 不返回图片数据,导致前端无法显示缩略图
解决方案:
- 在
get_collections()函数中添加图片数据加载逻辑 - 查询
collection_images表并返回图片信息
代码变更:
# backend/app/routers/collections.py
# 修复前
'images': []
data_list.append(to_camel_case(item_dict))
# 修复后
'images': []
# 加载图片数据
from app.models.models import CollectionImage
images = db.query(CollectionImage).filter(
CollectionImage.collection_id == item.f99_90_id
).all()
for img in images:
item_dict['images'].append({
'id': img.id,
'filename': img.filename,
'original_name': img.original_name,
'path': img.path,
'created_at': img.created_at.isoformat() if img.created_at else None
})
data_list.append(to_camel_case(item_dict))
影响范围:
- ✅ 藏品列表 API
- ✅ 前端缩略图显示
- ✅ 所有依赖图片数据的页面
4. 前端图片路径修复 🔗
问题描述:
- 数据库中的
path字段已包含uploads/前缀 - 前端代码又添加了
/uploads/前缀,导致路径重复 - 最终 URL:
/uploads/uploads/collections/xxx.jpg(404 错误)
解决方案:
- 前端代码直接使用
path字段,不添加额外前缀
代码变更:
// frontend/src/pages/Detail.jsx
// 修复前
src={`/uploads/${img.path}`}
// 修复后
src={`/${img.path}`}
影响范围:
- ✅ 藏品详情页图片
- ✅ 图片预览弹窗
- ✅ 所有图片显示位置
📊 技术细节
图片访问流程
用户访问 http://8.149.137.26/uploads/collections/xxx.jpg
↓
Nginx 接收请求(匹配 /uploads location)
↓
代理到 http://47.110.37.129:3000/uploads/collections/xxx.jpg
↓
FastAPI 返回图片文件
↓
用户看到图片 ✅
数据库存储
| 字段 | 示例值 |
|---|---|
path |
uploads/collections/admin-0001-J051963351.jpeg |
filename |
admin-0001-J051963351.jpeg |
original_name |
001.JPG |
文件命名规则
格式: 用户名 - 藏品编号 - 冠字号。扩展名
示例:
admin-0001-J051963351.jpegadmin-0002-J035161361.JPG
📝 文件变更清单
前端文件
- ✅
frontend/src/pages/Detail.jsx- 图片路径和 onError 处理 - ✅
frontend/src/pages/Home.jsx- Logo 引用 - ✅
frontend/src/pages/Login.jsx- Logo 显示 - ✅
frontend/package.json- 版本号 1.0.1
后端文件
- ✅
backend/app/routers/collections.py- 图片数据加载
配置文件
- ✅
config/VERSION- 版本号 1.0.1 - ✅
config/nginx.conf- Nginx location 优先级调整
文档文件
- ✅
docs/IMAGE_PROCESSING_FLOW.md- 图片处理流程 - ✅
docs/CLEANUP_REPORT.md- 服务器清理报告 - ✅
RELEASE_v1.0.1.md- 本发布说明
✅ 测试验证
功能测试
| 测试项 | 状态 | 说明 |
|---|---|---|
| Logo 显示 | ✅ 通过 | 仅在登录页、首页显示 |
| 藏品列表图片 | ✅ 通过 | 缩略图正常显示 |
| 藏品详情图片 | ✅ 通过 | 大图正常显示 |
| 图片预览弹窗 | ✅ 通过 | 点击可打开预览 |
| 图片切换 | ✅ 通过 | 左右按钮切换正常 |
| 无图片占位符 | ✅ 通过 | 显示"无图片"而非 Logo |
API 测试
| 接口 | 状态 | 说明 |
|---|---|---|
| GET /api/collections | ✅ 200 | 返回图片数据 |
| GET /api/collections/:id | ✅ 200 | 返回图片详情 |
| POST /api/collections/upload-image | ✅ 200 | 图片上传正常 |
| GET /uploads/collections/xxx.jpg | ✅ 200 | 图片代理正常 |
🎯 升级建议
从 v1.0.0 升级
-
拉取最新代码
git pull origin main -
更新前端
cd frontend npm install npm run build -
重启后端服务
cd backend pip install -r requirements.txt pkill -f uvicorn nohup python3 -m uvicorn app.main:app --port 3000 --host 0.0.0.0 & -
更新 Nginx 配置
sudo cp config/nginx.conf /etc/nginx/conf.d/jiachenlong.conf sudo nginx -s reload
📚 相关文档
docs/IMAGE_PROCESSING_FLOW.md- 图片处理完整流程static/images/LOGO_GUIDE.md- Logo 使用规范docs/CLEANUP_REPORT.md- 服务器清理报告
🐛 已知问题
无
📞 技术支持
如有问题,请参考:
- 部署文档:
DEPLOYMENT_v1.0.0.md - 错误码文档:
ERROR_CODES.md - 后端服务指南:
BACKEND_SERVICE_GUIDE.md
甲辰藏品管理系统开发团队
2026-03-16