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