• 您的位置: 紫荷精灵 >> 软件网络 >> 使用静态站点生成器的 7 个理由
  • 使用静态站点生成器的 7 个理由

  • 作者:admin  来源:原创  日期:2016-3-29 1:20:24
  • 静态站点生成器变得越来越流行,如果我的预测正确的话,2016年将是其使用量爆发的一年。下面解释一下我们所说的“静态站点生成器”到底是什么。

     

    什么是静态站点?

    回想一下你建立的第一个站点。很多开发者都是通过创建一系列独立的 HTML 文件开始的。每一个都会包含一些资源,如 CSS、图片,或许还有一些 JS。你可能会直接在文件系统中直接打开这些文件,而不需要使用WEB 服务器。就是这么简单。

    当你的站点变得越来越复杂的时候,麻烦就来了。考虑下导航:在每个页面中它可能都是一样的,但当增加一个新的页面时,就需要更新其他所有的页面。甚至当图片或CSS的文件结构发生变化时,也会产生很多麻烦。你可能会考虑服务器端的引入或者PHP,但一个更方便的选择是使用内容管理系统(CMS)。

    什么是内容管理系统?

    内容管理系统通常会提供管理控制面板–它允许作者将编写的内容存储到后端的数据库。当用户请求一个网址的时候,CMS 需要:

    这些几乎是在瞬间完成的。模版可能会包含一些代码,根据导航层级结构生成菜单。大约有超过四分之一的人会选择使用 PHP/MySQL 驱动的 WordPress 来管理他们的站点。

    不幸的是,CMS 也会产生一些问题:

    • 你需要遵循 CMS 的工作方式,想添加自定义文本或者组件可能不是很方便
    • 服务器需要做更多的工作,可能会影响到性能
    • 可能还有其他问题,如软件升级或者数据库故障,都会使你的站点 Down 掉

    什么是静态站点生成器?

    静态站点生成器是介于手工编码的静态站点和 CMS 之间,同时保留两者优点的折中解决方案。本质上,你会使用类似 CMS 模版的概念生成静态 HTML 站点。内容可能会是从数据库中提取的,但通常情况下,会使用 Markdown 文件。

    站点生成可以是在你的开发机器或临时服务器上进行。之后产生的 HTML 文件被部署到 WEB 服务器上。用户将永远不会知道其中的差别。

    一个相关的概念是 “Headless” 或 “Decoupled” CMS。它们使用一些接口如 WordPress 来管理内容,但允许其他系统通过REST API来获取数据。因此,静态站点生成器可以使用内部服务器上的 WordPress 中提取数据生成静态站点。产生的静态站点可以上传到 WEB 服务器–但安装的 WordPress 应该永远都不能被外部访问到。

    一些流行的静态站点生成器包括:JekyllPelicanHugo 以及 Metalsmith,可以访问 StaticGen 查看更多。下面说说使用静态站点生成器的一些好处。

    推荐阅读:《Katana – 支持 Markdown 语法的 PHP 静态站点/博客生成器

    1. 方便灵活

    CMS 通常会限制你的选择,因为它们依赖于特定的数据库。如果你想在页面上添加一个 Twitter 小工具,你通常就需要一个插件、或者短代码、或者一些自定义的函数。

    在静态站点,你可以直接把它插入到文件、或使用partial/snippet。基本没有任何限制,因为你不需要受 CMS 强加的那些束缚。

    2. 更好的性能

    大多数的 CMS 提供内置或依靠插件的缓存系统以确保生成页面,当需要的时候重用。虽然管理、验证、重新生成页面需要开销,但这还是有效果的。

    而静态站点是预缓存、永不过期的页面。在部署之前还可以压缩文件以确保最小化加载。静态站点始终要比使用相似模版的 CMS 驱动的站点性能更好。

    3. 更少的服务器端依赖

    典型的 WordPress 安装需求:

    • 一个合适的操作系统,如 Ubuntu 或 CentOS
    • 一个 Web 服务器,如 Apache 或 NGINX
    • PHP 和相关扩展,以及 Web 服务器配置
    • MySQL
    • WordPress 应用
    • 一些必要的插件
    • 主题/模版代码

    这些依赖都必须安装和管理。WordPress 相比其他应用需要更少的依赖,但任何一个地方的更新都可能引起混乱。

    静态站点是轻量级的,可以托管在任何可以返回 HTML 的服务器上。不需要其他的安装、管理和更新。

    4. 更高的可靠性

    CMS 系统很复杂,有很多故障点,不管运行多长时间的 WordPress 都可能遇到过 “Failed to establish a database connection” 的错误。流量的突增等不可预见的 CMS 问题,都可能导致数据库崩溃或者连接受限。

    静态站点服务器很少出现这种情况,因为它只需返回 HTML 文件。虽然仍有肯能出现服务器崩溃,但它可以接受更多的并发请求。

    5. 卓越的安全性

    别人攻击你的网站可能会有多种原因。流量劫持、流氓广告、链接、未经用户授权的恶意软件托管等。

    CMS 为攻击开启了大门。最明显的是登录界面:用户密码的安全性是最弱的。要知道,任何其他运行在服务器端的页面都有潜在的安全漏洞–例如,通过联系表单向你发送垃圾邮件。

    静态网站很少,或者没有服务器端的功能。你无法通过脚本或者数据库漏洞来访问它。有人仍可能通过 FTP 或 SSH 访问,但他们会尽力做更多其他的破坏,而不是破坏网页或者上传文件。通过 git status或者文件夹检测就可以快速找出问题。这比修改密码、修复站点然后重新生成它们要简单的多。6. 客户端控制注意事项

    你可能需要花费数周的时间来制作具有吸引力的主题。但使用 CMS 并不容易,并且它为内容编辑器提供了强大的功能。你可以锁定一些功能,如安装插件,但这并不能阻止其他人更改字体、添加怪异的颜色、使用很差的排版或者布局。

    静态站点可以使用 Markdown 文件,这限制了用户的选择,他们会犯更少的错误,不会产生影响页面的情况。有些人可能会想念 CMS 的管理面板,但你可以:

    • 使用现有的 CMS,并在生成前清理数据,或者
    • 提供更简单的工作流,如在 StackEdit中编辑 Dropbox 文件。

    7. 版本控制和测试

    数据库数据是很容易丢失的。CMS 允许用户随意的添加、删除、修改内容。清空整个站点也只需要几步点击。你可以备份数据,但即使是定期这么做,仍会丢失一部分数据。

    静态站点是安全的,假如你使用 Markdown 文件和 Git 之类的版本控制系统。旧的文件会被保留,并且修改可以很快的撤销。测试变得更加容易,因为网站可以在任何地方生成并预览–即使是在你自己的电脑上。

    这就是使用静态站点的好处,对吗?

  • 上一篇:各windows系统激活序列号
    下一篇:微商转型社交电商,教你怎么做推广