为什么创建静态站点?

了解为什么静态站点可能是一个更好的选择。

静态网站仅由静态文件组成,如 HTML、CSS、JavaScript、图片等。它不使用服务器端处理、数据库、路由器或渲染。所有内容都是预先构建的,您的主机将网站文件完全按照它们在服务器上显示的样子交付给浏览器。

相比之下,在动态网站中,每个页面都是在每次请求后由服务器动态生成的。这允许为每次访问显示不同的内容(即,已登录的用户可能会看到页面的不同版本)。动态网站需要在服务器上安装一些软件才能工作,例如脚本语言(例如 PHP、JavaScript、Python 或 Ruby)、数据库等。

为什么创建静态站点?

Lume 是一个静态站点生成器,这意味着它只能生成静态网站。我们认为,今天存在的大多数网站都可以是完美的静态站点,这将使它们变得更好。为什么在大多数情况下静态站点是更好的选择?

更便宜

除非您有一个访问量数百万的大型站点,否则托管静态站点的成本非常低廉,甚至免费。有许多托管服务为静态站点提供慷慨的免费套餐,例如 Netlify、Vercel、Cloudflare、Kinsta 等。有关广泛的选项列表,请参阅 部署。如果您决定自行托管您的站点(self-host),也有便宜的选择,例如 Digital Ocean、Hetzner 等,每月不到 5 美元。

便携性

部署静态站点再容易不过了。因为它们是静态文件,您只需使用 gitrsyncftp 或您喜欢的工具将这些文件上传到服务器即可。甚至可以将静态站点压缩成 zip 文件,并通过电子邮件或消息发送!

安全性

由于服务器中没有逻辑,静态站点比动态站点安全得多。没有可利用的端点,例如配置文件、PHP 脚本或 XSS 漏洞。

性能

静态站点往往比动态站点性能更高,至少就后端而言是这样。原因是服务器只需按原样交付文件,无需任何额外的处理,这真的非常快。如果您使用 CDN 并在世界不同地区复制内容,并使用适当的缓存标头,您的网站将快如闪电。

几乎无需维护

静态站点可以永久存在,而无需任何类型的维护(没有数据库需要重启,没有插件需要更新等)。您可以上传一个静态站点,然后将其遗忘多年。只要浏览器继续存在并支持 HTML、CSS 和 JavaScript,您的静态网站将像第一天一样继续工作(甚至更好,因为浏览器随着时间的推移在不断改进)。

拥有你的内容

在大多数静态站点生成器(如 Lume)中,内容不是存储在由私有公司保管的远程数据库中,而是存储在您 repo 内部的文件中,格式如 Markdown、YAML 或 JSON,您可以使用任何文本编辑器打开它们。这使您的内容完全可供您访问,您可以随心所欲地处理它,例如修改、导出、移动、重用等。

更有利于 Web 可持续性

如果您关心环境(您应该关心),静态站点是 Web 的首选格式,因为它们的排放量较低。根据Web 可持续性指南

如果选择代码生成工具,请优先使用静态站点生成器,而不是笨重的内容管理系统。因为 SSG 通常开始使用极简的内容输入格式(如 markdown),并且所有的编译都在网站上传之前完成,所以排放效益来自于服务器不必花费太多精力为每个访问者提供页面服务(因为它们是静态的)。

没有厂商锁定

大多数静态站点生成器都有类似的工作流程:您将内容存储在简单的格式(如 markdown 文件)中,这些文件被转换为网页。这种 file over app(文件优于应用)的理念使得从一个静态站点生成器切换到另一个变得容易。

Lume 可以是您当前的站点生成器,但也许您将来想切换到另一个选项,如 AstroJekyllHugoEleventy任何其他。或者反之亦然,您可能正在使用这些站点生成器之一,并想切换到 Lume。从一个静态站点生成器更改为另一个所需的精力远低于更改动态站点生成器(即从 WordPress 到 Drupal)所需的精力。

如果需要一些动态特性怎么办?

您可能希望在您的网站中加入一些动态功能。这是否意味着您必须切换到动态站点?根据具体功能,一些替代方案可以在静态站点中实现:

搜索

搜索是任何网站的基本功能。幸运的是,在您的静态站点上拥有一个好的搜索引擎是可能的。这里有一些选项:

  • Pagefind 是一个用于静态站点的快速搜索库。Lume 有一个插件 可以使用它。

  • 对于高级用例,您可以使用第三方服务,如 AlgoliaOrama

  • 一个非常基本的实现是使用像 DuckDuckGo 这样的搜索引擎来显示限定于特定域的结果。名为 sites 的隐藏输入允许我们将 DuckDuckGo 查询限制在特定域。

    <form role="search" action="https://duckduckgo.com" method="GET">
      <label>Search in lume.land <input type="search" name="q"></label>
      <input type="hidden" name="sites" value="lume.land">
      <button>Search</button>
    </form>
    

    现在试试看:

评论

在静态站点中管理评论有不同的选项:

  • 使用 Fediverse。 mastodon-comments 是一种巧妙的方式,可以在您的帖子上显示评论,而无需实现评论系统,而是使用 Mastodon 和其他与 Fediverse 兼容的类似平台。
  • 使用 GitHub discussions:如果您有一个技术博客,并且您的大多数用户都有 GitHub 帐户,则可以使用像 giscus 这样的解决方案,它使用 GitHub discussions 作为评论系统。
  • 使用第三方服务,如 Discus

表单

有数百种解决方案可以在您的网站上包含表单。从免费且简单的工具(如 Google FormsStatic Forms)到更高级的工具(如 Typeform)。

CMS

过去,静态站点的主要问题之一是它们不易被非技术人员更新。幸运的是,现在情况已不再如此。有很多用于静态站点的 CMS,一些建议:

  • LumeCMS 可能是一个不错的解决方案,特别是如果您的站点是使用 Lume 构建的(尽管它可以与任何静态站点一起使用)。
  • DecapCMS 是一个开源 CMS,可以与任何静态站点生成器一起使用。Lume 有一个插件 可以更轻松地使用它。
  • CloudCannon 是一个用于静态站点的 CMS 即服务。如果您需要为发布者提供高级功能,它是理想的选择。它支持 Lume, 以及许多其他静态站点生成器。
  • 在此列表中查看更多 CMS