放弃CMS并考虑使用静态网站生成器的7个理由

多年来,发布网站已经超出了许多用户的承受范围。对于普通的非技术人员来说,HTML创作,托管帐户和管理托管文件的更新实在太多了。如今,用户可以注册一个Tumblr帐户并在几分钟内输入他们的第一篇文章。

随着用户变得越来越老练,WordPress之类的博客平台提供了其内容的所有权。但是WordPress及其同行仍然有许多活动的组成部分。对于只想写博客而又拥有的人来说,这太过分了。最近的答案是静态网站生成器(SSG)。让我们探讨一下您为什么要为下一个在线项目考虑一个。

什么是静态站点生成器?

Web上的第一页就是:某人的单个页面作为HTML文件编写并上传到服务器。虽然现代CMS(内容管理系统)将内容显示为页面,但实际上,它正在混搭标记,数据库内容和实时计算。它们是Web应用程序,可以帮助用户创建内容,存储内容,然后将其提供给网站访问者。

相反,静态网站生成器是发布工具。它们与Adobe Acrobat之类的工具没什么不同,后者采用可编辑的格式(例如Microsoft Word)并将其转换为易于使用的格式(.PDF)。在这种情况下,SSG执行以下基本任务:

  • 以某种基本内容作为输入;
  • 从中创建美观的Web内容,并且
  • 帮助将内容实时发布到网络上。
  • 在下一节中,我们将研究SSG的“静态"性质相对于当今CMS的一些优势。

    对于那些以前使用过WordPress等CMS的用户而言,以下某些方面似乎是一个巨大的变化。但是,它们使制作和维护某些类型的网站变得容易得多。让我们看一下其中的一些优势。

    下面的部分以Jekyll静态站点生成器的命令和输出为例。如果您选择其他SSG,则命令将有所不同,但是概念相似。

    与“传统" CMS相比,主要区别在于,您将静态网站生成器安装在您的本地计算机。例如,在以下Ubuntu计算机上启动Jekyll并运行就像以下命令一样简单:

    sudo apt-get install jekyll

    然后只需启动一个新项目:

    jekyll new mytestsite

    带有许多默认文件的“ mytestsite"目录中的新站点。请注意“ _posts"目录,其中包含Markdown文件。

    静态网站生成器旨在与本地本地内容一起使用。无需在线连接即可创建新帖子。您可以草拟内容,然后稍后运行“ build"命令来创建将要进入网络的帖子/页面。如果您习惯了离线博客编辑器(例如BlogDesk)的用法,除了一次不发布一篇文章,而是在本地构建整个网站。

    下一步,在“ _posts"中创建内容上面提到的文件夹。您可以在准备就绪时通过从项目目录中执行以下命令来构建站点:

    jekyll serve

    这将在子文件夹中构建整个站点,如下所示:

    完成后,您还可以使用Jekyll的内置Web服务器在http:// localhost:4000上查看此站点。

    如果您喜欢所看到的内容,则只需将所有文件上传到“ _sites"文件夹到虚拟主机。您的网站已准备就绪!

    此外,您还可以使用比原始HTML更友好的格式来创建这些帖子。 Markdown是最受支持的,但是许多SSG也可以立即使用或通过插件接受其他服务。 Jekyll的插件包括Asciidoc,orgMode或reStructuredText之类的选项。如果您使用的是其他标记语言之一,则只需进行快速的配置更改或插件安装。

    有趣的是,大多数SSG也接受 HTML 作为输入。 “等等,"你说。 “我认为转换为HTML是整个过程的重点!"但是请考虑以下问题:SSG不直接支持的其他格式通常可以导出为HTML。想象一个工作流程,您(或其他作者)使用ODT在LibreOffice中进行创作,该工作流程将被转换(例如通过Pandoc)为原始HTML,由SSG进一步处理和设置其样式。可能需要一些润滑脂,但完全有可能!

    如上所述,大多数SSG还支持扩展或插件以提供额外的功能。范围从自动将数据添加到网站(例如,基于日期的URL或相关帖子)到更多“类似CMS"的功能(例如用户身份验证或评论)。 DocPad SSG的一个插件甚至提供了一个管理面板!

    在从数据库中获取内容并运行任何包含的代码之间,加载某​​些CMS页面可能很缓慢。相反,静态网站已经采用了浏览器将使用的格式。唯一的延迟是Web服务器发送页面需要多长时间,以及浏览器呈现页面需要多长时间。但是,这都是CMS驱动的站点也必须做的事情。

    此外,由于SSG的输出是现成的HTML,CSS和Javascript。几乎任何Web服务器都可以毫无问题地为这些服务器(以及任何图像)提供服务。这意味着,如果您拥有自己的服务器(例如VPS),则可以灵活地部署更轻的Web服务器,例如lighttpd或nginx。

    CMS的多个移动部分,如WordPress,Drupal等为Interwebs的反派打开攻击媒介。通过访问PHP文件,攻击者可以在您的网站上执行自己的代码。数据库遭到破坏导致电子商务供应商头痛(因为他们实际上是在更复杂的CMS中)。

    -Martin Paul Eve(@martin_eve),2017年3月25日

    另一方面,SSG的所有编程魔术都发生在本地计算机上。因此,您最关心的是文件权限。意外地使文件可写入世界将是“一件坏事",但这对于CMS也可能发生。但是,由于静态站点中没有任何可执行代码并且无法访问数据库内容,因此它减少了站点安全中的潜在漏洞。

    如果您曾经管理过站点,您会知道在管理面板中看到“ Upgrade available!"消息的那刻令人恐惧。当然,您将在登台环境中对其进行测试,但您真的永远不会知道一个代码修复程序或格式奇怪的用户注释是否会使所有这些事情全部炸毁。

    比较这到静态网站。尽管可以使用新版本的SSG工具,但这些不会影响您的实时网站。它将继续前进,而不管可能会或可能不会发生的任何升级。在此期间,您可以升级您的SSG,发布该站点的新版本进行测试,然后最终实时迁移新版本。 CMS可以实现相同的目的,但必须不考虑数据库回滚之类的问题以及新用户生成的内容是否会丢失。

    不适用于静态网站生成器的网站类型

    并非所有站点都适合静态站点生成器。如果您将小型个人网站或类似传统博客(即日报)之类的东西放在一起,则SSG的简单性可能适合您。基本上,如果您希望将文本和图形内容单向发布到Web上,则静态站点是一个不错的选择。

    但是大多数现代网站都不是光荣的在线期刊。如果现在或将来您的站点需要以下任何一项,则应考虑静态站点生成器附带的警告。

  • 注册用户-如果您的站点必须允许用户注册,例如接收新闻通讯,仔细查看可用的插件,以及它们是否允许您要查找的互动类型。
  • 评论 —同样,如果您希望人们能够在您的博客上发表评论,则需要寻找适合您需求的本机插件或类似Disqus的服务。
  • 多位作者-如果您需要一个以上的人来为您的网站撰写内容,事情将会变得更加复杂。您需要先手动将其发布到本地计算机上,或者通过其他方法(例如Dropbox,源代码控制等)将它们发布到本地计算机上。
  • 数据驱动页面-使用一些插件,例如,您可以使用可包含在页面模板中的数据来创建CSV文件。但是设置它们有点复杂,但同时提供的功能却少于完整的数据库。
  • 高度互动的功能-如果您希望重新创建Google Maps或使用其中一种工具的文档,您就树错了树。
  • 电子商务 –静态网站不会适应众多且不断变化的规则
  • 总的来说,静态网站生成器是发布工具,非常适合用户寻找直接创建内容并将其准备好用于网络的方法。

    p>

    您如何看待?您愿意让静态网站生成器旋转吗?认为CMS仍然是要走的路吗?让我们在下面的评论中进行讨论!

    图片来源:mihalec,通过Shutterstock.com

    标签: 博客 HTML 移动博客 Wordpress