什么是静态网站生成器? 静态网站工具介绍

网站可以通过两种基本方式提供内容:静态和动态。 静态内容会提前生成,存储并按原样检索。 考虑很少更改的图像,样式表和HTML页面。 为了个性化响应,动态生成动态内容。 这里的示例包括针对个人用户量身定制的搜索查询,信息中心和产品推荐。

在任何网站上,静态和动态展示都是混合的,但是最近人们对生成几乎完全由静态内容组成的网站的最小工具集产生了浓厚的兴趣。

[有关低代码开发的全部内容: 为什么开发人员不应该只解雇低代码平台 | 25个用于快速构建移动应用程序的简单工具 | 评论: OutSystems使React应用程序的拖放变得容易 评论:Appian优价低价的开发人员 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

这些都不是全新的。 静态网站生成及其工具(如内容管理系统)已经存在了数十年。 但是,最新一代的这些工具将静态内容的生成降到了最低限度,从而无需依赖庞大的内容管理系统即可构建和维护静态网站。 他们还通过提供插件体系结构和其他可扩展性来利用现代软件构建技术。

静态网站设计

大多数网站都是静态和动态内容的组合。 例如,动态生成的搜索请求可能与静态侧边栏,页眉和页脚并排出现。 不过,为了便于讨论,我们将重点放在“静态优先”的网站上,即,没有基于客户端请求按需生成内容的网站。 此类静态网站通常按照以下方式构建:

  1. 内容作为静态HTML,CSS和图像文件提供。
  2. 静态内容按原样存储在磁盘上,通常使用某种程度的内存中缓存,或放置在CDN(内容交付网络)中并进行地理缓存。
  3. 只要更改页面,就会从后端重建页面,并且页面可能会在托管页面的不同基础结构上生成。 最关键的原则是,访问者的活动几乎绝不会按需生成内容。

并非每个网站都有利于静态内容的生成,但对于那些网站而言,其好处可能是巨大的。 由于可以在生成静态内容的不同基础结构上提供静态内容,因此很容易满足规模,安全性和关注点分离的需求。 静态内容易于大规模服务,因为它可以通过缓存或CDN轻松扩展。

静态网站生成器的工作方式

静态网站生成器执行以下三个基本操作来创建网站:

  1. 从文件中读取内容,通常以某些简化的标记格式。 这些文件可以布置在与输出匹配的目录结构中,或者可以从描述文件创建该结构。
  2. 根据模板将内容渲染为HTML。
  3. 将结果保存到一个新目录中,该目录可以按照与源文件的布局匹配的方式进行布局,也可以根据某些预定义的模式进行布局。

最基本的静态站点生成器遵循此模式。 更高级的生成器可能会添加其他功能:

  • 如果内容托管在与呈现位置不同的基础结构上,则将结果HTML自动推送到网站或CDN。
  • 监视源文件是否有任何更改,并在更改文件后重新呈现它们。
  • 智能地重建整个源文件树,以便仅省掉一些必须重建的文件,这是一种省力的措施。

静态网站生成器与CMS

即使是最先进的静态站点生成器,也有意限制了功能集。 这是用例理念的一部分-它们旨在作为功能完善的内容管理系统的更简单替代方案。

大多数内容管理系统使用Web前端,需要数据库来存储内容和管理用户权限,并且需要大量的设置和维护才能有用。 静态站点生成器在大多数方面都采取相反的立场。 它们作为命令行应用程序运行,依靠操作系统来进行文件管理和用户权限,无需数据库即可工作(最多仅需要配置文件),并且不需要很多管理工作即可开始。

静态站点生成器努力使Web内容的创建和管理尽可能地减少开销。 例如,对于CMS,内容通常是通过系统自己的Web界面进行编辑和管理的。 使用静态站点工具,可以使用用户喜欢的任何文本编辑器直接在磁盘上编辑内容。

简而言之,完整CMS和静态网站生成器之间的最大区别在于该工具的理念。 内容管理系统通常在设计上功能丰富。 静态网站生成器会以HTML形式呈现内容,而通常会忽略其他所有内容。

顶级静态网站生成器

如果您要开始使用静态网站生成,则可以找到许多不错的工具供您选择。 在下面,我列出了八个最知名的工具。 一些静态网站生成器是独立的工具(例如此处的Hugo),但大多数都需要语言运行时。 您可能希望开始尝试使用已经熟悉或具有良好机构支持的语言编写的工具。

盖茨比

Gatsby使用JavaScript React框架来构建静态网站。 它不仅可以从现有的静态文件中构建,还可以连接到数据库,包括现有的内容管理系统(如WordPress)。 如果您要从现有的博客引擎迁移,这会使盖茨比成为一个有用的选项。 Gatsby还直接部署到包含CDN的托管平台。

雨果

Hugo用Go语言编写,可以作为本机二进制文件跨平台运行,因此对于不想处理配置语言运行时的网站开发人员来说是一个不错的选择。 Hugo开箱即用地提供了许多有用的组织功能,例如生成目录或网站菜单,重定向和干净的永久链接URL,以及对常见的第三方网站工具(如Disqus评论和Google Analytics(分析))的集成支持。

杰基尔

用Ruby编写的Jekyll提供了基本的静态站点生成工作流。 用它的创造者的话来说,它“摆脱了您的束缚,让您专注于真正重要的事情:您的内容。” 不过,Jekyll确实在最小范围内提供了许多有用的功能,例如自动生成指向博客的下一页和上一页的链接的功能。 另请参见Octopress ,这是用于预先配置的Jekyll网站生成的框架。

莱克托

用Python编写的Lektor与许多其他静态生成器一样,是基于文件的,但是它也提供了友好的管理界面,以及其他静态生成器通常不包含的一些工具(例如,图像管理)。

尼古拉

Nikola也是用Python编写的,提供了高级功能,例如智能的变更重建,来自许多常见博客引擎的导入器,以及用于根据需要广泛扩展功能的插件体系结构。

用Python编写的Pelican ,是该语言中最著名,使用最广泛的静态网站系统之一。 Pelican允许使用不同类型的页面类型(例如,博客文章与独立网站页面),提供多语言支持,并缓存通用页面元素以进行快速重建。

静态反应

像上面的Gatsby一样, React Static使用React来呈现静态页面。 与Gatsby不同,React Static将数据查询和模板分开,以实现更明确的关注点分离,并且不依赖GraphQL作为内部数据查询格式。

VuePress

VuePress使用JavaScript的Vue框架。 VuePress强调最小的功能,可通过插件系统扩展,并带有专为技术文档设计的默认模板。 如果您使用JavaScript作为主要语言,并且比React更熟悉Vue,那么VuePress将是一个不错的起点。

From: https://www.infoworld.com/article/3340827/what-is-a-static-site-generator-static-website-tools-explained.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值