什么是静态站点生成器?

静态站点生成器可自动执行静态 HTML 网页的编码过程。

学习目标

阅读本文后,您将能够:

  • 定义静态网站生成器的作用
  • 静态网站生成器与 CMS 的对比
  • 探索使用静态网站生成器的优点和缺点

相关内容


想要继续学习吗?

订阅 TheNET,这是 Cloudflare 每月对互联网上最流行见解的总结!

参阅 Cloudflare 的隐私政策,了解我们如何收集和处理您的个人数据。

复制文章链接

什么是静态站点生成器?

静态网站生成器是一种基于原始数据和一组模板生成完整静态 HTML 网站的工具。从本质上讲,静态站点生成器自动完成对单个 HTML 页面进行编码的任务,并让这些页面提前准备好为用户提供服务。因为这些 HTML 页面是预先构建的,所以它们可以在用户的浏览器中非常快速地加载。

静态网站生成器是内容管理系统 (CMS) 的替代品,后者是另一种用于管理 Web 内容、生成网页和实施模板的工具。(模板是 Web 内容的可重用格式;开发人员使用模板来避免一遍又一遍地编写相同的格式。)静态站点生成器通常是 JAMstack Web 开发方法的一部分。

什么是静态网站?

静态网站由一个或多个 HTML 网页组成,这些网页每次都以相同的方式加载。静态网站与动态网站形成对比,动态网站根据一些不断变化的数据输入(例如用户的位置、一天中的时间或用户操作)进行不同的加载。静态网页是可以快速加载的简单 HTML 文件,而动态网页需要在浏览器中执行 JavaScript 代码才能呈现。

静态网站生成器和 CMS 之间有什么区别?

在互联网的早期,网站被存储为静态 HTML 站点,所有网页都预先布局和硬编码。这是低效的,因为它需要开发人员手动编码每个网页。

内容管理系统 (CMS) 的出现让开发人员能够避免所有这些手动设置。内容存储在 CMS 数据库中,而不是提前对页面进行编码,当用户请求页面时,服务器会执行以下操作:

  1. 查询数据库,寻找正确的内容
  2. 识别该内容将适合的模板
  3. 生成页面
  4. 向用户提供页面

CMS 中的内容必须适合 CMS 数据库提供的字段之一,但只要符合要求,它就应该每次都出现在网站上的适当位置。

静态站点生成器是这两种方法的折衷方案。与 CMS 一样,它允许开发人员使用模板并自动生成网页——但它会提前完成后者,而不是响应用户的请求。这可以提高网站性能,因为网页可以立即交付给最终用户。它还为开发人员提供了更大的定制能力,因为他们不受 CMS 提供的数据库字段的限制。

使用静态站点生成器有哪些优缺点?

优点

  • 性能:因为静态站点生成器提前而不是按需(比如使用 CMS)创建网页,所以网页在用户浏览器中的加载速度稍快。
  • 定制:开发人员可以创建他们想要的任何模板。它们不受 CMS 提供的字段限制,也不受 CMS 内置模板的限制。
  • 更轻的后台:静态网站是轻量级的,不需要在服务器端运行那么多代码,而基于 CMS 的网站会不断地向服务器端查询内容。

缺点

  • 很少或没有预制模板:无限定制的缺点是可能需要更长的时间才能开始。许多静态网站生成器不附带模板,开发人员一开始要花很多时间从头开始建立模板。
  • 没有用户友好的界面:非开发人员用户更难使用静态站点生成器发布内容。没有 CMS 界面,处理未格式化的原始数据可能会让用户望而生畏。此外,进行网站更新通常需要开发人员支持。

JAMstack 与静态网站生成器有何关系?

JAMstack(JAM 代表“JavaScript、APIs、Markup”)是一种有效创建轻量级、快速执行的 Web 应用程序的方法。JAMstack 应用程序是静态的,API 用于任何后端功能。静态站点生成器使开发人员能够快速构建 JAMstack 应用程序前端。

前端框架如何与静态网站生成器搭配使用?

前端框架是预构建代码的文件和文件夹集合,用于帮助设计和格式化网站。常见的前端框架包括 Bootstrap、React 和 Vue.js,但还有很多其他框架。

当开发人员最初构建网站时,前端框架非常有用。但是,除非开发人员使用其他工具,否则前端框架本身不会生成 HTML 网页。静态站点生成器可以与开发人员的框架一起使用,以快速获得完全设计好的网站或应用程序以供使用。大多数静态站点生成器允许开发人员使用他们想要的任何框架。

什么是 Markdown?

Markdown 是一种广泛使用的简单标记语言,用于格式化文本。如今,许多开发人员在编写内容时更喜欢使用 Markdown 而非传统的 HTML,且许多静态站点生成器都支持 Markdown。

有哪些常用的静态网站生成器?

如今有许多静态站点生成器可供使用,需要了解的一些重要生成器包括:

  • Jekyll
  • Gatsby
  • Hugo
  • Next.js
  • Eleventy

Cloudflare Pages 托管在 Cloudflare 全球网络上,该网络可以在 100 毫秒内连接到全球 99% 的互联网,可以近乎即时地将内容交付给终端用户。Cloudflare Pages 建立在 Cloudflare Workers 无服务器功能的基础之上,使开发人员能够构建轻量级、可扩展的 Web 应用程序。

了解如何使用 Cloudflare Pages 部署 Jekyll 站点Gatsby 站点Hugo 站点等等。