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