django-vue3-admin-backend/在线阅读功能部署说明.md
2025-10-23 01:10:28 +08:00

172 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 在线阅读功能部署说明
## 后端部署步骤
### 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
- ✅ 前端添加阅读器路由
- ✅ 图书列表添加"在线阅读"按钮
- ✅ 完成前后端集成