从 WordPress 搬出来之前,我犹豫了很久。静态站没有评论框、没有登录后台、装个插件都得自己改模板——这些我都知道。但架不住它快、省心、不用半夜担心服务器被人打。真正动手之后,反而有几个小坑值得记一下。
第一,模板优先级。 Hugo 找模板是按一套固定顺序去翻的,站点根目录下的 layouts/ 永远优先于主题自带的模板。我在 layouts/index.html 里重写了一遍首页,主题 terminal 原本那套布局就被整个盖掉了——好处是完全自由,坏处是主题的样式类一个也用不上,得自己配一份 CSS。
第二,数据文件。 首页那些"随机文选"“最近更新"列表,我不想每发一篇文章就手改一次模板,就把它们丢进 data/ 里的 JSON 文件,模板用 range 遍历出来。改了内容重新构建一次就生效,比在模板里写死整洁很多。
第三,static/ 目录大小写。 这个坑最隐蔽。我样式文件原本放在 static/CSS/,本地 Windows 访问 css 和 CSS 没区别,一路绿灯;直到准备部署才发现,Linux 服务器是区分大小写的,页面会直接找不到样式、裸奔。教训是:路径一律用小写,别贪一时方便。
写到这儿,站点已经能正常构建、本地 hugo server 预览也顺了。剩下最头疼的其实是收录——静态站没有 sitemap 自动 ping,搜索引擎根本不知道你的存在。这部分我改天单独整理一篇。