静态站点生成器怎么选:七款工具的许可、依赖与适用场景

资源合集2小时前发布 一方
0 00

选静态站点生成器的人常卡在同一处:搜到一堆名字,却不知道它们解决的不是同一类问题。这份清单按许可、构建依赖、产物形态与学习曲线四个维度,把七款常用工具放回各自的位置,并写清每一款不适合谁。

先定四个维度:许可、部署、依赖、学习曲线

头一条是许可。它决定你能不能改、能不能闭源分发、改完再分发要不要一并开放源码。第二条是构建依赖:装一个二进制就能跑,还是得先有 Node 或 Ruby 运行时和一整棵依赖树。

第三条是产物形态:默认输出纯 HTML 加少量脚本,还是能把页面注水成单页应用。第四条是学习曲线:模板语法是 Go Template、Tera、Liquid 还是 JSX,团队里谁会写、谁愿意维护。

这四个问题比「哪个构建快」更能决定结局。构建速度通常在内容过万页时才成为主要矛盾,而许可与依赖从一开始就在影响你。

部署方式跟着产物走。这类工具产出的都是文件,可以丢给对象存储加 CDN,也可以直接放进 Nginx 目录;需要登录、表单、个性化推荐时,才要考虑函数服务或轻量后端。构建阶段的资源占用差别也不小:Go 与 Rust 的二进制主要吃 CPU 与内存,Node 系还要额外算依赖安装的磁盘与时间。

七款工具一览:版本、许可与定位

工具语言与运行时许可当前版本主要定位
HugoGo,单二进制Apache-2.00.169.0(2026-10-27)内容量大的博客与站点
ZolaRust,单二进制EUPL-1.20.23.6(2026-09-12)内置功能齐全、不碰 JS 工具链
AstroNode 22.23.4 以上MIT7.4.7内容站加交互组件
EleventyNode 18 以上MIT3.1.8模板自由、默认零客户端 JS
VitePressNode + Vue 3MIT1.6.4项目文档与产品手册
HexoNode 20.19 以上MIT8.1.2中文博客、插件生态
JekyllRubyMIT4.4.1(2025-01)GitHub Pages 直接构建

版本号取各项目发布页与包注册表在 2026 年 11 月 6 日的当前稳定版。Jekyll 的 4.4.1 发布于 2025 年 1 月,此后以小版本修复为主,节奏明显慢于前六款,这一点在选型时要有预期。

许可这一栏有一处容易看漏。Zola 用的不是 MIT,而是 EUPL-1.2,属于带 copyleft 性质的欧盟许可:修改后再分发,需按同一许可开放对应源码。只拿它生成自己的网站不受影响,改内核再对外提供服务则要逐条读条款。

Go 与 Rust:两款单二进制工具

Hugo 是这组里社区体量靠前的一个,GitHub 上 90,389 Star,主语言 Go,许可 Apache-2.0,当前版本 0.169.0 发布于 2026 年 10 月 27 日。

它的优势在资产管线:SCSS 编译、JS 打包、图片处理都内置,不需要 Node。模板用 Go Template,函数多、写法偏程序化,头一次上手会别扭。适合文章上千篇、对构建时间敏感、又不想维护前端工具链的站点。

不适合两类人:想用 JSX 或 Vue 组件写页面的;团队里没人愿意学 Go Template 的。

Zola 走另一条路,Rust 编写、单二进制,17,583 Star,许可 EUPL-1.2,版本 0.23.6(2026-09-12)。它把 Sass 编译、语法高亮、搜索索引做成初始化时的开关,装完不必再配 JS 环境。模板是 Tera,语法接近 Jinja2,学过 Django 或 Twig 的人上手快。

不适合谁:需要大量前端插件与组件库的人;对 copyleft 许可敏感的商业项目;想要现成主题市场的人,Zola 的主题数量少于 Hugo。

JavaScript 与 Ruby:五款各有分工

Astro 的定位是内容站加交互组件。它默认输出静态 HTML,只有需要交互的部分才加载 JS,也就是常说的岛屿架构;页面里可以直接写 React、Vue、Svelte 组件,也可以只用自家的 astro 语法。7.4.7 要求 Node 22.23.4 以上,版本要求高于其余六款。

不适合谁:纯文档站,VitePress 的配置项更少;不愿跟着升 Node 的团队;需要复杂客户端状态的应用。

Eleventy 的特点是不绑定模板语言。Nunjucks、Liquid、Markdown、WebC 可以混用,默认不向浏览器输出 JS。3.1.8 只要求 Node 18 以上,在 Node 系里门槛偏低。它的插件生态比 Astro 小,主题也不多,好处是产出干净、结构由你决定。

不适合谁:想要开箱即用主题与组件的人;不熟悉 JS 构建配置的人。

VitePress 只为文档而生。它基于 Vue 3 与 Vite,Markdown 里可以直接写 Vue 组件,内置本地搜索、侧边栏、多语言与暗色模式。1.6.4 的配置项比同组工具少,代价是不擅长博客:分页、标签、归档都要自己实现。

Hexo 是国内博客圈的常见选择,8.1.2 要求 Node 20.19 以上。它的优势是插件与主题现成、中文文档齐全,装完换个主题就能写;劣势是只生成静态页面,复杂交互要另接服务。

Jekyll 是这批里资历较老的一个,Ruby 编写,模板用 Liquid,4.4.1 发布于 2025 年 1 月。它现在的主要价值是 GitHub Pages:仓库推上去,平台直接构建,不必自己配 CI。更新慢是事实,新特性少,接口倒是稳定。

不适合谁:不想在本机装 Ruby 的人;需要现代前端能力的人。

按场景选型:一张对照表

你的场景建议理由
个人博客,文章数百到上千篇Hugo资产管线内置,构建时间随内容增长不明显
只想装一个二进制,不碰运行时Zola无 Node / Ruby 依赖,Sass 与搜索可开关
内容站,个别页面要交互Astro岛屿架构,组件可复用
手写 HTML,要完全掌控结构Eleventy模板自由,默认不注入 JS
项目文档、产品手册VitePress导航、搜索、多语言内置
中文博客,要现成主题Hexo主题与插件多,文档齐全
GitHub Pages 零配置Jekyll平台原生构建,无需 CI

表里没有「通用推荐」这一列,因为这类工具没有统一答案。真正让人后悔的选择通常不是选错生成器,而是选了一个团队没人会维护的模板语言。

上手顺序与三个误区

建议的顺序是:先用官方脚手架建一个空站,把三篇文章、一个列表页、一个标签页跑通;再接图片处理与部署;最后才换主题。跳过前两步直接套主题,出问题时分不清是主题还是配置。

误区一是把生成器当成 SEO 方案。它输出的是静态 HTML,结构、标题层级、内链才决定收录,工具只负责别拖后腿。

误区二是只看构建速度。内容过千页后,图片压缩与远程图片下载往往比模板渲染更耗时,单二进制工具与 Node 工具在这部分的差距会被抹平。

误区三是以为静态站什么都不用管。评论、搜索、表单、访问统计都要外挂服务;域名与证书也得自己配,站内写过ACME 证书自动化的流程,可以照着走。

部署之后还有两件事常被忽略:缓存头怎么设,决定改版后用户看到新页还是旧页,HTTP 缓存那篇讲清了强缓存与协商缓存的分工;上线初期的通断与解析,可以用多地节点探测先验一遍,比等用户反馈快。

最后一个判断建议:如果站点还没建,先用 VitePress 或 Hexo 把内容写出来,攒到二十篇再考虑迁移。迁移成本主要在模板改写,而改写的前提是你已经知道自己要什么结构。工具换得来,内容换不来。


相关地址

以下为文中七款工具的官方入口,版本号与升级说明以这些页面为准。

  • Hugo(官网):https://gohugo.io/
  • Hugo(GitHub 仓库):https://github.com/gohugoio/hugo
  • Zola(官网):https://www.getzola.org/
  • Zola(GitHub 仓库):https://github.com/getzola/zola
  • Astro(文档):https://docs.astro.build/
  • Astro(GitHub 仓库):https://github.com/withastro/astro
  • Eleventy(官网):https://www.11ty.dev/
  • Eleventy(GitHub 仓库):https://github.com/11ty/eleventy
  • VitePress(官网):https://vitepress.dev/
  • VitePress(GitHub 仓库):https://github.com/vuejs/vitepress
  • Hexo(官网):https://hexo.io/
  • Hexo(GitHub 仓库):https://github.com/hexojs/hexo
  • Jekyll(官网):https://jekyllrb.com/
  • Jekyll(GitHub 仓库):https://github.com/jekyll/jekyll
© 版权声明

相关文章