免费获取方案 →
test

PC 端静态化生成:从 puppeteer 到 CDN 的整条链路

admin Fri Sep 25 2026 15:33:17 GMT+0800 (中国标准时间) 阅读 0

PC 官网要兼顾 SEO 与首屏速度,动态 SSR 太重,纯静态又难更新。本文拆解 puppeteer + Handlebars + CDN 的整条静态化链路。

一、为什么需要静态化

  • SEO 友好:搜索引擎对纯 HTML 最友好;
  • 首屏快:CDN 边缘缓存,TTFB < 50ms;
  • 抗流量:纯静态资源,无后端压力。

二、整条链路

  1. 内容生产:管理端 / CLI 写入 MySQL;
  2. 触发静态化:手动按钮 / 定时 cron / 文章发布事件;
  3. Handlebars 编译:模板 + 数据 → HTML 字符串;
  4. puppeteer 渲染:开浏览器 → 注入异步资源 → page.content() 抓最终 HTML;
  5. 写 dist/:`F:\z_espcool_company\fronted-pc\dist\.html`;
  6. 推 CDN:ossutil / CDN 刷新;
  7. 用户访问:CDN 边缘 → HTML → 内嵌 tracker.js → POST /pc-stats/track。

三、关键设计

  • 失败重试:3 次指数退避;
  • 失败信息持久化:`pc_page_static_files.lastError`;
  • 事件触发:`EventEmitter.emit('article.published', id)` → 单页重生成;
  • chromium 实例池:`browser-manager` 全局模块复用 puppeteer 实例。

四、特酷实践

特酷信息科技(示例)的 PC 官网采用上述链路,每天凌晨 2 点全量生成一次,文章发布事件触发单页生成,dist 推 OSS + CDN。

← 返回文章列表

看完有想法?来聊一下你的场景

从需求评估到方案落地,由我们 10 年以上经验的工程师直接对接。

加载中