Skip to content

Bug #002: epub.js 缺少 JSZip 依赖导致渲染空白

现象

修复 Bug #001(中文文件名)后,epub 阅读器页面加载正常但内容区域持续空白。JS 控制台无报错。

根因

epub.js 的所有构建版本(包括 epub.min.jsepub.legacy.min.js)均将 JSZip 作为外部依赖,通过 UMD 的 root["JSZip"] 方式引用。

阅读器页面只加载了 epub.min.js,未加载 jszip.min.js,导致 window.JSZipundefined。epub.js 初始化失败但未抛出可见错误。

修复

在阅读器 HTML 中增加 JSZip 加载,顺序必须为:JSZip → epub.js

html
<script src="/books/jszip.min.js"></script>
<script src="/books/epub.min.js"></script>

node_modules/jszip/dist/jszip.min.jsnode_modules/epubjs/dist/epub.min.js 复制至 public/books/

同时添加加载失败检测和友好错误提示。

关联文件

  • public/books/jszip.min.js — 新增
  • public/books/epub.min.js — 新增(本地版替代 CDN)
  • public/books/reader-money-dog.html
  • public/books/reader-rich-dad.html

金融知识学习笔记