LOADING
582 字
3 分钟
博客新增 PDF 下载与浏览页

最近把博客里的 PDF 分发流程收了一次口,目标很明确:不要再为每个 PDF 单独写页面,也不要每加一个文件就改一次代码。

现在的做法是固定一个投放目录:public/pdfs/。只要把 PDF 放进去,博客里的 PDF 页面就会在构建时自动扫描这些文件,并生成可浏览、可下载的条目。

现在能做什么

这个页面集中提供了四件事:

  1. 自动列出 public/pdfs/ 里的所有 PDF。
  2. 按最后修改时间倒序展示,新的资料会更靠前。
  3. 在页面里直接展开预览。
  4. 支持新窗口打开和直接下载。

页面入口已经放进 Exhibition 下面,访问路径也固定成了 /pdfs/。

为什么不再用仓库根目录

最开始的想法是“把 PDF 直接拖到仓库根目录就行”。这个想法看起来简单,但不适合 Astro 的静态资源发布模型。

根目录文件不会自动变成可公开访问的站点资源。真正适合放公开文件的位置,是 public 下面的目录。所以最后把工作流改成了 public/pdfs/,这样页面扫描和最终部署都是一致的。

现在的使用方式

后续新增 PDF 时,只需要按下面做:

  1. 把 PDF 复制到 public/pdfs/。
  2. 启动或重启本地开发服务器。
  3. 打开 /pdfs/ 检查是否已经出现。

如果是移动端设备,内嵌 PDF 预览不一定总是稳定,所以页面里保留了“新窗口打开”作为兜底入口。

这次实现刻意没有做的事

这版没有引入额外的元数据文件、封面抽取、分类和分页。原因很简单:当前目标是把维护动作压到最低,而不是先把系统做重。

如果之后 PDF 数量明显增长,再考虑为单个文件补充描述、封面或者筛选能力会更合适。

小结

这次调整之后,PDF 的维护成本就变成了一个非常直接的动作:放文件。

对内容侧来说,这比“每次加资料都要改模板”稳定得多;对读者来说,也终于有了一个统一的 PDF 浏览和下载入口。

博客新增 PDF 下载与浏览页
/posts/博客新增-pdf-下载与浏览页/
作者
Xs
发布于
2026-05-28
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时