洞察 技术栈

静态优先:为什么我们自己的网站就是一堆普通文件

没有服务器、没有数据库、没有框架运行时——页面在你眨完眼之前就加载好了。对大多数企业网站来说,静态生成是最被低估的架构。

你正在读的这个网站,是一个装满普通 HTML 文件的文件夹。一个小脚本读取我们的内容——案例、这些文章、中英文两个版本的首页文案——然后提前写出每一个页面。没有应用服务器,没有数据库,访客的浏览器里也没有运行任何框架。整个构建大约一秒。

这是我们刻意的选择。对于那些和我们一样、网站内容主要是一周改几次而不是一秒改几次的客户,我们也推荐同样的做法。

静态能换来什么

  • 速度。 预先构建好的页面,直接从离访客最近的内容分发网络发出。没有什么需要计算,第一个字节几乎立刻到达,页面在任何脚本运行之前就已可读。
  • 安全。 网站背后没有服务端代码、没有数据库,大多数常见的攻击路径根本不存在。没有东西可以被注入,也不用在周二晚上紧急打补丁。
  • 成本。 在典型的企业流量下,托管静态文件几乎不花钱;一篇文章被大量转发时,费用也不会陡增。
  • 可靠。 某个 API 宕机、某个插件没人维护、当初建站的开发者离开了,静态网站都照常运行。
  • 长久。 今天写的 HTML,二十年后依然能在浏览器里打开。能做出同样承诺的应用框架寥寥无几。
这个网站是怎么构建的
工作在构建时做一次,而不是每次访问都做。读者打开页面时,服务器上什么都不运行。

“可是我们需要……”

人们以为必须用动态网站才能实现的功能,大多数其实不需要。

  • 表单可以提交到托管平台的表单处理服务,或者一个小小的无服务器函数。
  • 搜索几百个页面,可以用一个预先构建好的索引,在浏览器里完成。
  • 多语言内容不过是两套生成出来的页面,它们之间有正确的 hreflang 链接。
  • 非开发人员编辑可以用无头内容管理系统,在发布时触发重新构建;小团队也可以把内容放在结构化文件里,配一个简单的审核流程。
  • 交互组件,比如计算器、配置器甚至实时 3D,可以加在特定页面上,而不必让整个网站变成动态的。

什么时候静态是错的

如果内容是按访客个性化的、每秒都在变、或者取决于谁登录了——客户门户、实时看板、库存实时变化的商店——你就需要服务器。即便如此,应用周围的营销和内容页面,通常也最好用静态方式构建,并与应用分开。

我们怎么做

我们自己的生成器只有几百行、没有任何依赖:内容放在 JSON 和 Markdown 里,模板就是普通函数,还有一个校验步骤——缺了任何一篇翻译就拒绝构建——以及每次运行都会重写的站点地图。它刻意保持无聊。任何读得懂 JavaScript 的人都能修改它,也没有什么需要升级。

更大的网站,我们会改用成熟的静态网站生成器,原则是一样的:在构建时把工作做一次,而不是每次访问都做一遍。大多数企业网站被阅读的次数远多于被修改的次数,它们的架构理应反映这一点。

继续阅读
全部洞察

从两周诊断开始。

先做 60 分钟评审,再进行固定费用的两周诊断。结束时你会拿到一份带预算的路线图,是否继续合作没有任何附加条件。

邮箱
admin@yondertech.co.nz
办公地址
23A Dromorne Rd, Remuera
Auckland