最初的想法
DanceBanana 这个域名注册之后,最初的想法很简单:一个能展示自己做过的项目的页面。所以第一版就是一个单文件 HTML,把项目卡片放上去,完事。
第一步:单页到多站点
首页做好之后,发现一个问题:算法可视化项目需要一个独立的子站点,不能挤在首页的子路径里。
于是就有了第一个子域名 algo.dancebanana.com,后面又有了 blog.dancebanana.com。
踩过的坑
SSL 证书
最开始申请的是单域名证书(dancebanana.com 和 www),后来发现每加一个子域名就要重新申请,太麻烦。改成了 通配符证书 *.dancebanana.com,一次性覆盖所有子域名。
申请通配符证书需要 DNS 验证,就是给域名加一个 TXT 记录。手动加太慢,写了一个阿里云 DNS API 的 hook 脚本,让 certbot 自动添加和删除 TXT 记录,全程自动化。
ICP 备案
备案流程比想象中长,等了大概两周才通过。备案通过后需要在 footer 添加备案号,并链接到工信部网站。
安全头
加了 HSTS、X-Content-Type-Options 等安全头之后,发现某些老旧浏览器会有兼容问题,不过现在的用户基本都升级了,问题不大。
博客的诞生
为什么单独做了一个博客子域名而不是在首页里加一个博客页面?
因为首页是单文件 HTML,手动维护文章列表太累了。Astro 静态博客用 Markdown 写文章,构建时自动生成页面列表和 RSS,维护成本低很多。
暖色调统一
一开始算法可视化站是冷灰色调,和主站的暖黄色调不搭。后来花了一个周末把 25 个文件全部改成 amber/stone 色系,视觉上终于统一了。
当前状态
- 首页:单文件 HTML(SEO 已补全,加了统计)
- 算法可视化:100 道 LeetCode 题(algo.dancebanana.com)
- 博客:Astro 构建(blog.dancebanana.com)
- 证书:通配符,自动续期
- 统计:不蒜子
下一步
- 首页改 Astro 构建,统一技术栈
- 写更多博客文章
- 股票分析助手和小游戏合集