动态网站(WordPress)静态化

我称之为:墓地工程。
这些个方案只适合阶段性的将动态网站静态化——因为它的生成时间很长,即便是些微变化,也要全站输出。

需求其实很简单,就是把WordPress架设的Blog静态化,部署在静态站点,保持其原来的互联网的URL
核心就是页面标题要和WordPress分配的序号一致,才能保持URL不变。有两种方式:

一、站点镜像软件

这个是通用技术,我曾经将某文学站点全站拉了下来。
常用的软件包括:

  • HTTrack(网站站点克隆工具)
  • WebZip
  • 以及:TeleportUltra、Mihov Picture Downloader、MaxprogWebDumper、IDM等等。

试了HTTrack和WebZip,HTTrack更加稳定。
经测试,下载过程太慢,放弃。

二、WordPress插件

本来自己就有站点控制权,直接用插件会更加平滑。比如:
Simply Static
效果不错,安装后点击“Push”,就开始运行,有窗口展示总共多少文件,已经完成多少文件,速度也不慢。
完成后反馈下载链接,下载后,直接部署到静态站就可以访问了。
本来打算部署在EdgeOne的,但其免费版只支持1000个文件;然后用CloudFlare,虽也有限制但至少部署上去了。测试差不多,就把主博客域名切换了过去,纯静态。

Tips:

Replacing URLs项目

  • Absolute URLs(绝对地址):生成包含完整域名和路径的链接,地址是固定不变的,适用于部署站点到新的线上域名;
  • Relative Paths(相对路径):不包含域名,只记录文件在网站目录中的相对位置,让链接可以灵活适应不同的域名或子目录,适用于将网站部署到任意静态托管服务(如Netlify、Vercel);
  • Offline Usage(离线使用):将链接转换为指向你电脑本地文件的路径,以便在无网络环境下用浏览器打开浏览,适用于本地浏览。

编辑器

其实这个问题和静态站点没啥关系,动态站点时,如果启用了Markup Markdown插件,WordPress支持markdown语法,副作用就是早期的编辑器的文档的“回车键”就被吃了,造成发布的页面比较难看。所以,还是使用WordPress原生编辑器或者“经典编辑器”,不奢求WordPress支持markdown了。

Cloudflare Pages限制

Cloudflare Pages 对单个静态文件的硬限制:25 MiB(≈26.2 MB) 。

  • 所有计划(Free/Pro/Business/Enterprise)都一样,付费也不能提高这个上限 。

  • 超过会直接报错: Error: Pages only supports files up to 25 MiB in size 。

  • 常见超文件:大JS包、视频、安装包、大图片、缓存文件(如Next.js  .next/cache )。

  • Pages 是全球边缘节点分发的静态托管,25M是为了保证边缘缓存效率与上传/部署稳定性 。

  • 它不是对象存储,不适合放超大文件。

  • Free 计划:单站点最多 20,000 个文件;付费计划可到 100,000 。

  • 构建超时:20 分钟 。

  • 直接上传(拖拽):最多 1,000 个文件 。

三、步骤及成果

  1. 使用WordPress 的 Simply Static 插件,全站导出了“木鱼琐语”。
  2. 由于插件对路径的处理问题,手工调整了/mysay/的内容,保持了搜索引擎收录的原路径。
  3. 打包压缩,部署到CloudFlarePages。
  4. 调整将原WordPress(动态站)使用的Blog.muyu.org域名解析,并绑定到CloudFlarePages。
  5. 至此:可以通过Blog.muyu.org访问自2004年的木鱼琐语的内容(MT版+WP版)。