之前我的个人网站是用 WordPress 搭的。说实话,WordPress 确实方便,装个主题、写几篇文章, 一个看起来不错的网站就出来了。但用了一段时间之后,我越来越觉得不对劲。
为什么不用 WordPress 了
首先是速度。WordPress 的页面加载并不快,尤其是装了几个插件之后,后台变得很重。 我的服务器配置不高,每次打开后台都要等好几秒,写文章的体验很糟糕。
其次是维护成本。WordPress 需要定期更新核心、更新插件、关注安全补丁。 有一次我忘了更新,网站直接被人挂了跳转脚本。修了大半天,心理阴影不小。
最后是自由度。我想把页面排版做成自己喜欢的样子,但改 WordPress 主题的成本太高了。 要么学 PHP 去改模板,要么在主题的自定义 CSS 里写一堆 override,怎么看都不优雅。
转向纯静态网站
想清楚之后,我决定把网站改成纯静态的。自己写 HTML 和 CSS,用 Nginx 做静态托管, 不需要数据库,不需要后端语言,所有页面就是一个 HTML 文件。
这样做的好处很明显:页面加载飞快,因为 Nginx 直接返回静态文件; 没有安全漏洞,因为没有什么可以被攻击的;部署也简单,把文件扔到服务器上就行。
具体做了什么
我先在服务器上配置好了 Ubuntu + Nginx + Let's Encrypt 的 HTTPS 环境。 这一步并不复杂,网上教程很多,主要就是装 Nginx、配虚拟主机、用 Certbot 申请证书。
然后开始写页面。我把 CSS 从 HTML 里拆了出来,放到一个单独的 style.css 文件里,
所有页面共用同一套样式。导航、页脚这些重复的部分在每个页面里手动写,虽然不如模板引擎方便,
但对于目前五六个页面来说完全可以接受。
整个过程其实没什么技术难度,但需要耐心。每个页面的结构要保持一致, 链接要一个个检查,手机端的适配也要反复调试。
一些感受
做完之后最大的感受是:简单的东西反而让人踏实。没有插件冲突、没有数据库连接错误、 没有"请更新到最新版本"的提示。就是一个干干净净的网站,打开就能看到内容。
当然,纯静态网站也有局限。如果以后文章多了,手动维护页面会很麻烦。 到那时候可能会考虑用 Astro 或者 Hugo 这样的静态站点生成器。 但至少现在,手写 HTML 是最合适的选择。
有时候,不过度工程化,也是一种好的工程决策。