静态站点生成(SSG)是一种构建网站的方法,其中 html 页面在构建时生成,而不是在运行时生成。这意味着网站的内容在部署到 Web 服务器之前会预先呈现为静态 HTML 文件。
静态站点生成(SSG)的类比可以从印刷书籍的世界中得出。
类比:在发布之前打印一本书
想象一下您是一名作家,计划发行一本新书。在这种情况下,这本书是您的网站,而书中的页面是各个网页(例如主页、关于页面、博客文章等)。
- 传统动态网站(实时打印):
对于传统网站(例如动态网站),每次有人订购您的书的副本时,出版商都会从头开始打印该书,一次一本。每个顾客都必须等待书籍打印和装订后才能收到副本。您的订单越多,打印所有副本所需的时间就越长,如果很多人同时订购,则过程可能会变慢(网站速度慢)。
- 静态站点生成(预印书籍):
现在,想象一下,您不是在有人订购时打印这本书,而是提前打印所有书籍并将其库存在您的商店中。当有人进来购买这本书(或访问该网站)时,他们可以立即从书架上拿起预先打印的副本。无需等待,书籍(网页)已准备就绪。
这就像静态站点生成(SSG),所有网页都是在用户访问站点之前生成的,当有人请求页面时,它会立即从预先构建的静态文件中提供服务。
这个比喻的好处:
速度:客户可以立即拿起预印的书籍,就像用户可以立即访问预先构建的网页一样。
效率:不需要每次有人订购一本书就重新打印书籍,就像不需要为每个用户重新渲染页面一样。
可扩展性:无论您有 10 个客户还是 10,000 个客户,他们所需要做的就是从书架上拿起一本预印的书(或提供预构建的页面)。
这如何适用于 SSG:
预构建:这本书是批量打印的(页面在构建期间预渲染)。
即时访问:当用户(客户)来到网站(商店)时,他们会立即获得内容,因为内容已经预先构建(预打印)。
SSG 技术示例:Gatsby
Gatsby 是一个流行的静态站点生成器。它允许您通过将各种来源(例如 cms、Markdown 文件或 API)的数据编译为静态 HTML、css 和 JavaScript 文件来预构建网站。一旦建立,您的网站就可以非常快速地提供服务,就像书架上预先印好的书一样。
总而言之,SSG 就像在发布之前打印所有书籍,因此当客户出现时,他们可以立即获取副本,而无需等待打印,从而提供更快、更有效的内容服务方式。