【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

静态网站生成器将会成为下一个大热门

  • 2015-11-10
  • 本文字数:2325 字

    阅读完需:约 8 分钟

Matt Biilmann 是现代静态网站托管服务Netlify 的联合创始人兼CTO,在开发工具构建、内容管理系统和Web 基础架构方面有10 多年的经验。他从开源目录 StaticGen 及 GitHub 上发现,静态网站生成器发展迅速。像 Nest MailChimp 这样专注于设计的公司现在就使用静态网站生成器构建他们的主要站点。 Vox Media 基于 Middleman 构建了一个完整的发布系统 Carrot 使用自己的开源生成器 Roots 为一些世界上最知名的品牌创建网站。近日,Matt撰文分析了这一现象背后的原因,并预言静态网站生成器将成为下一个大热门。

像Dreamweaver 和FrontPage 这样的桌面应用程序,通过WYSIWYG 编辑器为构建以内容为驱动的网站提供了解决方案。网页被分成了导航栏、标题栏、页脚栏等可重用的部分。在某种程度上,这就是最早的静态网站生成器。但随着发展,这样的工具逐渐无法满足现代网站构建中设计与内容相分离的要求。于是,LAMP 技术栈及诸如 WordPress Drupal Joomla 这样的 CMS 成为主流,Web 进入 2.0 时代。用户不再只是跟随超链接浏览内容,而是可以订购产品、参与社区及创建内容。

但是,动态网站容易遭受蠕虫攻击。据保守估计,超过 70% 的 WordPress 部署容易因为已知漏洞遭受攻击(超过 23% 的 Web 网站以 WordPress 为基础构建)。而几个月前, 1200 万个 Drupal 站点需要紧急打补丁。此外,即使是最为优化的动态网站,其性能也无法同静态网站相比。并且,对于动态网站而言,缓存失效非常难以恢复,尤其是需要充分利用 CDN 的分布式缓存。WordPress 网站并不保证同一个 URL 不会返回不同的 HTML。跟踪页面缓存是否失效非常复杂。在这一点上,静态网站完全不同。它们遵循一个非常简单的缓存约定:在 URL 所对应的文件没有更新的情况下,任何 URL 都会返回相同的 HTML。

近年来,作为传统动态网站基础架构的替代方案,现代静态网站生成器日渐盛行。许多导致静态网站失败的限制已不复存在。现在,每周都会有新的静态网站生成器发布。通常,它们都有如下特点:

  • 模板:允许将网站分解成布局组件和包含组件,以便消除重复,这是静态网站生成器的基本要素之一。

  • 支持 Markdown:Markdown 的兴起是静态网站生成器流行的根本原因之一。所有主要的静态生成器都支持 Markdown,也有一些支持 reStruturedText 或其它标记格式。但通常,它们都允许内容开发人员以结构化的格式编写纯文本文档,保证了内容与设计的分离。

  • 元数据:在文档顶部,通常采用 YAML 格式,如下所示: 标题:文档标题

    分类:类 A 类 B

    # 具体内容

    文档正文

    这使得使用元数据为单个文档作注解非常简单。

  • 资源管道:现在的前端开发几乎总是用到多种构建工具和编译器。大多数现代静态网站生成器都包含了一个资源管道,用于处理资源编译、转译、压缩和打包。

另外,静态网站生成器通常会提供一个命令行 UI,用于构建网站或运行本地服务器。例如, Jekyll 就提供了 jekyll build 命令。

Matt 认为,静态网站生成器技术现在之所以崛起,主要是因为如下几个原因:

  • 浏览器发展:现代浏览器本身就是一个操作系统。它不再只是显示从 Web 上下载的文档,而是能够运行成熟的 Web 应用程序,过去许多需要动态代码的特性现在都可以移到客户端了。例如,可以使用 Disqus Isso 添加评论功能,使用 Twitter 或 Facebook 的 JavaScript 组件集成社交应用,使用 Swiftype 添加搜索功能,等等。基于浏览器的网站插件越来越多,而使用 Ember.js、AngularJS 或 React 构建的现代 Web 应用通常也完全作为静态网站部署。
  • CDN 成为主流:任何人都可以注册 Amazon AWS,并在网站前端设置 CloudFront 服务。 Fastly MaxCDN CloudFlare 等公司提供了小企业也用得起的 CDN 服务。虽然动态网站也能使用 CDN,但缓存失效是个棘手的问题,而静态网站很容易直接部署到 CDN,并可以直接从离用户近的本地缓存提供服务。
  • 高性能不可或缺:越来越多的用户通过移动设备访问网站,网站性能变得前所未有的重要。移动设备不支持多任务,浏览网页时几乎无法做其它事,等待页面加载会格外让人沮丧。然而,动态网站无论如何优化,其性能也永远不如一个托管在 CDN 上的静态网站有保障。此外,静态网站生成减少了许多开发过程中需要考虑的性能问题,例如,无需考虑数据库查询的效率。
  • 构建工具应用广泛:前端开发人员大量地使用构建工具、包管理器和各种编译器、转译器。Grunt 是第一个成为主流的前端构建工具,大多数新项目都有构建步骤。构建工具的普及使得静态网站生成器更自然地成为前端工具集的一部分。

但是,在成为主流之前,静态网站生成器还有一些工作要做。例如,初次选择一个静态网站生成器并开始一个项目非常困难,因为这涉及许多复杂的细节,而且这些工具及其文档都还有很大的改进空间。另外,静态网站生成器距离成熟的主流市场还很远,无法提供同传统动态网站平台一样的服务,最为明显的就是内容编辑。对前端开发人员而言,在文本编译器中直接使用 Markdown 进行编辑并发送到 GitHub 是个理想的工作流程,但对非技术出身的终端用户而言,这种方式并不友好。这是内容编辑同静态网站生成之间存在的一个巨大鸿沟。该问题不解决,静态网站生成就不会成为主流。

所幸,目前已经有一些“非 CMS”方案。例如,The Verge 就一直使用Google Sheets 作为Middleman 的内容层 StaticGen 将 Gist 和 GitHub API 当作数据库用;Carrot使用Contentful 作为一个静态CMS 。Matt 还提到了其它一些内容编辑解决方案,如 Prose.io 、N etlify 的开源 CMS ,感兴趣的读者可以进一步研究。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-11-10 18:004354
用户头像

发布了 1008 篇内容, 共 375.0 次阅读, 收获喜欢 341 次。

关注

评论

发布
暂无评论
发现更多内容

抖音超火的文本生成图像的软件AI Photo for mac直装版

魔仙苹果mac堡

AI Photo下载 AI Photo破解版 文本到图像生成器 超火的抖音软件推荐

如何选择一款低代码平台?需要关注哪些细节?

这我可不懂

低代码 低代码平台 JNPF

累计下载破 10 万,阿里云 ACR 制品中心 5 月最受欢迎镜像排行榜

阿里巴巴云原生

阿里云 阿里云云原生 容器镜像服务

波司登云原生微服务治理探索

阿里巴巴云原生

阿里云 微服务 云原生

常用的表格检测识别方法——表格结构识别方法 (下)

合合技术团队

人工智能 深度学习 文字识别 表格检测

软件测试/测试开发丨Selenium Web浏览器控制

测试人

程序员 软件测试 自动化测试 测试开发

百度商业AI技术创新大赛火热进行中,携手专家大咖一起创新为更好!

百度Geek说

人工智能 AIGC 企业号 5 月 PK 榜

海量数据运维要给力,GaussDB(for Cassandra)来助力

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

支持神经滤镜Photoshop 2023 (ps 2023)Mac v24.5/24.6b中文激活

真大的脸盆

Mac Mac 软件 ps神经滤镜 photoshop神经滤镜

SeaTunnel毕业!首个国人主导的数据集成项目成为Apache顶级项目

Apache SeaTunnel

大数据 开源 数据集成 国产开源 Apache SeaTunnel

英特尔持续耕耘锐炫显卡:累计21次驱动更新,支持XeSS游戏达50+

E科讯

创建编辑音频Audition 2022(AU2022)中文破解安装

魔仙苹果mac堡

AU2022破解安装教程 Audition 2022下载 Audition 2022中文版 Adobe AU

看数智平台如何助力企业实现产业互联

用友BIP

数智平台

从Google、创业再到字节跳动,我在开源领域的实践与思考

开源雨林

创业 字节跳动 开源治理

探索云原生技术发展与应用实践,赋能企业数字化转型 | 2023开放原子全球开源峰会云原生分论坛即将启幕

开放原子开源基金会

开源 云原生

一分钟跑出 AI 图像的生成平台

CODING DevOps

AI Cloud Studio 云端IDE

对线面试官-线程池(二)

派大星

Java 面试题

云原生数据库厂商拓数派加入龙蜥社区,打造多样化的数据底座

OpenAnolis小助手

开源 操作系统 龙蜥社区 CLA 拓数派

Desktop Goose for Mac(抖音桌面宠物鹅) v0.22激活版

魔仙苹果mac堡

mac软件下载 抖音桌面宠物鹅 桌面宠物软件推荐 Desktop Goose mac破解版

Flink CEP 在抖音电商的业务实践|电商行业实践专栏上线

Apache Flink

大数据 flink 实时计算

速来!TDengine 六周年线上生日趴,“送”周边大礼包啦

爱倒腾的程序员

时序数据库 ​TDengine taosdata

软件测试/测试开发丨Web自动化测试常见控件交互方法

测试人

索信达“数据资产管理解决方案”全解析

索信达控股

凝心聚力,共创未来 | 2023 开放原子全球开源峰会 OpenCloudOS 社区年会即将启幕

开放原子开源基金会

开源 云原生技术 OpenCloudOS 社区

【活动回顾】Databend 数据库表达式框架设计与实现 @GOTC

Databend

XMind2023思维导图软件 完美永久激活版 支持M1/M2

魔仙苹果mac堡

XMind下载 XMind思维导图 XMind2023新功能 XMind永久激活版

火山引擎DataLeap的Catalog系统搜索实践 (二):整体架构

字节跳动数据平台

元数据 catalog DataLeap 文档检索

【mac/win】navicat安装破解教程 Navicat 16 中文下载

魔仙苹果mac堡

Navicat Premium破解版 Navicat Premium16 navicat数据库 好用的数据库软件

共建、共享开源EDA共性技术框架 | 2023开放原子全球开源峰会开源EDA分论坛即将启幕

开放原子开源基金会

开源 EDA 开放原子

Arm NN 成功适配 openEuler Embedded,提供高性能神经网络推理能力

openEuler

Linux 操作系统 openEuler risc-v embedded

中核集团财务共享迈上新台阶

用友BIP

财务共享

静态网站生成器将会成为下一个大热门_音视频(后端)_谢丽_InfoQ精选文章