3.7 KiB
3.7 KiB
在线阅读功能部署说明
后端部署步骤
1. 数据库迁移
在线阅读功能添加了以下数据库变更:
CrudBookModel 模型新增字段:
file: 电子书文件字段(FileField)file_type: 文件类型字段(CharField)
新增 ReadingProgress 模型:
user: 用户外键book: 图书外键location: 阅读位置(CFI格式)progress: 阅读进度百分比
执行迁移命令:
cd django-vue3-admin-backend
# 创建迁移文件
python manage.py makemigrations crud_book
# 执行迁移
python manage.py migrate crud_book
2. 新增API接口
图书文件接口:
GET /api/CrudBookModelViewSet/{id}/file/- 获取图书文件信息
阅读进度接口:
POST /api/reading-progress/- 保存/更新阅读进度GET /api/reading-progress/by_book/?book_id={id}- 获取指定图书的阅读进度GET /api/reading-progress/- 获取当前用户所有阅读进度
3. 配置检查
确保 settings.py 中已配置:
# 媒体文件配置
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
确保主 urls.py 中已配置静态文件服务:
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... 其他路由
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
前端部署步骤
1. 安装依赖
cd django-vue3-admin-web
# 使用yarn安装(推荐)
yarn install
# 或使用npm
npm install --legacy-peer-deps
2. 配置检查
已添加的文件:
src/views/book/reader/index.vue- 阅读器组件src/api/book/reader.ts- API接口定义src/router/route.ts- 路由配置(已添加 /book/reader)
已修改的文件:
src/views/crud_book/CrudBookModelViewSet/crud.tsx- 添加"在线阅读"按钮
3. 启动开发服务器
yarn dev
# 或
npm run dev
测试步骤
1. 上传测试文件
- 准备一个EPUB格式的电子书文件
- 在图书管理页面,编辑或新增图书
- 上传EPUB文件到"电子书文件"字段
- 保存图书信息
2. 测试在线阅读
- 在图书列表中找到已上传文件的图书
- 点击"在线阅读"按钮
- 验证阅读器是否正常加载
- 测试功能:
- 翻页(上一页/下一页)
- 目录导航
- 字体大小调整
- 阅读进度保存
3. 测试阅读进度
- 阅读几页后关闭阅读器
- 重新打开同一本书
- 验证是否自动跳转到上次阅读位置
常见问题
Q: 阅读器无法加载图书?
检查项:
- 确认EPUB文件已正确上传
- 检查后端MEDIA配置是否正确
- 查看浏览器控制台错误信息
- 确认API接口返回正确的文件URL
Q: 阅读进度无法保存?
检查项:
- 确认用户已登录
- 检查数据库迁移是否执行成功
- 查看后端日志是否有错误
- 确认ReadingProgress模型已创建
Q: 前端启动失败?
解决方案:
- 删除
node_modules和package-lock.json - 使用
yarn install重新安装依赖 - 如果使用npm,添加
--legacy-peer-deps参数
功能特性
✅ 已实现:
- EPUB格式在线阅读
- 目录导航
- 阅读进度记录和恢复
- 字体大小调整
- 翻页控制
- 进度条显示
🚧 待实现:
- 翻译功能(需集成翻译API)
- 书签功能
- 笔记和高亮
- 夜间模式
- PDF格式支持
更新日志
2025-10-22
- ✅ 添加图书文件字段(file, file_type)
- ✅ 创建阅读进度模型(ReadingProgress)
- ✅ 实现文件获取API
- ✅ 实现阅读进度保存/获取API
- ✅ 前端添加阅读器路由
- ✅ 图书列表添加"在线阅读"按钮
- ✅ 完成前后端集成