我对静态网站生成器感到困惑。它们是否只适用于信息类网站,我无法登录或显示任何动态数据?

❥ 赞助商

几天前,一位听众向我提出了这个问题。我认为这是一个合理的问题。“静态网站生成器”中的“静态”一词与“动态”一词相矛盾。它似乎暗示着使用静态网站生成器 (SSG) 创建的网站是固定的,只有在将来某个日期再次运行时才会发生变化。这是一个有点不幸的含义,尽管完全可以理解。

实际上,“静态网站”可以像任何其他网站一样动态,因为有一¹件事内置在任何网站中都可用:JavaScript。例如,JavaScript 可以访问 API 并更新页面的静态生成的标记。想想看。JavaScript。API。标记……J…A…M…Jamstack

理解这个 Jamstack 世界(即执行动态操作的静态网站)的关键部分,就是看看Netlify 提供了什么。Netlify 实际上提供静态托管。Netlify 上没有服务器端语言(例如 Ruby、PHP 或 Python)来提供各个页面。因此,SSG 和 Netlify 携手并进。但让我们以列表的形式来了解一下

  • Netlify 为您运行构建过程。这很可能包括一个 SSG。其主要目的是将构建的站点文件保留在版本控制系统之外,否则会造成浪费。
  • Netlify 处理您的表单。无需为了此动态功能而始终运行服务器。
  • Netlify 提供身份验证。没错,读者,身份验证是平台的一等公民。
  • Netlify 以云函数的形式运行您的服务器端代码。静态托管并不意味着您无法执行服务器端操作。这意味着您可以使用现代、廉价、安全、专注、快速、强大的云函数来执行服务器端操作。
  • Netlify 可以按需构建页面。这意味着如果您不想预先构建所有页面,则无需这样做。

这只是一些功能集。这是一篇来自一段时间前的有趣博文,其中介绍了一些员工最喜欢的功能,其中许多功能未包含在上面的列表中。Jamstack 实际上开始意味着静态网站确实发生了动态变化。

希望这能回答这位特定读者的疑问以及任何其他有同样困惑的人的疑问。SSG可以生成完全静态的网站,其中没有任何动态数据并且不提供任何特殊的登录体验。但它们也可以像任何其他网站一样具有动态性,只是构建于更坚实、更静态的基础之上。

  1. 好吧,让我们说两件事。动态操作可以通过边缘处理程序来完成,而无需客户端 JavaScript。