最初的想法

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 构建,统一技术栈
  • 写更多博客文章
  • 股票分析助手和小游戏合集