从 WordPress 到 Astro:XPANZ 官网的静态化重构记录
XPANZ 官网用 Astro 完成了静态化重构:构建 28 个页面的纯静态站点、零外部请求、VI 设计体系全量落地。本文记录选型理由、字体自托管与踩过的坑。
作者
XPANZ 产品团队
分类
技术路径
阅读时长
01 分钟
发布日期
2026年9月15日
XPANZ 官网最近完成了一次完整重构:从传统 CMS 迁到 Astro 静态站点,最终产出 28 个页面的纯静态构建、零外部资源请求(无 Google Fonts、无 CDN 追踪)、全套 VI 设计体系落地。这篇记录选型过程与技术决策,给同样在做官网的团队一个参考。
为什么换掉 CMS
旧方案的问题不是”慢”,而是不可控:主题换字体要去插件里找开关,VI 色值被主题的自定义选项层层包裹,页面上还挂着一堆第三方脚本。对一个主打”全球出海社媒营销AI”的产品,官网本身就是产品力的一部分——它应该像我们给客户生成的内容一样:快、干净、风格统一。
为什么是 Astro
评估过的方案里,我们最终选了 Astro(内容驱动 + 岛屿架构),理由按优先级排:
- 内容集合(Content Collections):博客、案例、定价这些 Markdown 驱动内容天然匹配我们的”结构化数据 + 文案”工作流——运营改文案是改 Markdown 文件,不需要碰模板;
- 零 JS 默认:28 个页面里大部分是纯 HTML+CSS,博客列表页的首屏加载不受任何框架拖累;
- 自托管友好:字体通过 woff2 自托管(Manrope 与 NotoSansSC 的 Variable 字重用 fonttools 压缩),构建产物里没有一个外部域名请求;
- 部署简单:构建产物是纯静态文件,扔任何静态托管(我们最终用 CloudBase)即可,没有服务端依赖。
被否决的方案:Next.js(对内容站过重)、WordPress 继续用(不可控问题无解)、纯手写 HTML(内容规模上来后维护成本不可接受)。
VI 落地的工程做法
设计体系全量来自我们的 VI 资料库:颜色 token 直接落为 CSS 变量(深色为默认主题,浅色预留),LOGO 用官方 SVG 锁标,字体双栈(Manrope 西文 + NotoSansSC 中文)。一个关键细节:图标必须内联渲染,因为官方线性图标用 currentColor 定义描边色——用 <img> 引入时颜色永远解析为黑色,深底上就隐形了。我们把图标做成 Astro 组件,让描边色继承父级文字色,深色区自动变白、强调区自动变橙。
踩过的坑
- 绝对路径与双击打开:构建产物用站点根绝对路径引用资源,直接双击 HTML 打开会全部 404。这是静态多页站的固有限制,我们在对外发放的包里附了本地预览脚本,正式部署不受影响。
- keyvisual 当背景:VI 主视觉图内嵌品牌元素,直接铺背景会干扰标题。统一加一层渐变蒙层(深色到透明),主题感和可读性可以兼得。
- 构建缓存:开发服务器的依赖缓存重建要批量删临时目录,个别安全软件会拦截这类操作导致 dev 服务器报错——遇到类似问题先检查杀软的文件保护日志。
结果
重构后全站 28 页面、构建无外部请求、Lighthouse 性能分拉满。更重要的是:官网现在和产品共享同一套 VI token 源文件,改一次颜色,产品和网站同步生效——这才是设计体系该有的样子。
相关文章
为什么 AI 批量生成的内容会被平台判重?我们的防判重架构
用 AI 批量做社媒内容,最大的担忧是"被平台识别为 AI 内容而降权"。运营 86 多账号体系 90 天后,我们的结论是:平台判重的对象从来不是'AI',而是'重复'。理解这一点,就能设计出既规模化又安全的生成架构。 平台实际在查什么 综合各平台的社区规则与我们的实测观察,文本层面的风险信号大致有三类:完全重复:同一文案出现在多个账号(哪怕跨平台、改了 hashtag),这是最容易被命中也处罚最重的; 高相似改写:同义词替换、语序调整、机器翻译式的"洗稿",n-gram 重叠度依然很高; 模板化痕迹:固定句式结构的大量复用(比如每条都是"Did you know that..."开头),行为模式异常。注意这里没有"AI 生成"本身——平台很难也不必要判断内容是否 AI 生成,它们查的是内容指纹和行为模式。 我们的三层生成架构 第一层:选题去重。 86 个账号共享一个选题库,但选题的分配遵循"同平台唯一"——同一选题在 Facebook 上出现一次,在 X 上可以再用一次(因为平台间不互查),但在 Facebook 内的 30 个账号中只允许出现一次。选题分配由脚本完成,输出为按账号排期的 CSV,人工可审。 第二层:独立生成。 每条内容由 AI 针对"这个账号的角色卡 + 这个选题"独立生成,而不是生成一篇母稿再改写。这听起来费 token,但正是因为每条内容的句式、角度、例证都是现场生成的,n-gram 重叠度天然就低。我们实测,独立生成的两条同选题内容,与"母稿+改写"的两条相比,文本相似度从 ~65% 降到 ~30% 以下。 第三层:发布前指纹检查。 内容入库前跑一遍与库内已有内容的相似度比对,超过阈值(我们设 0.5)的自动打回重生成。配图同样查感知哈希(pHash),防止同一张图换个滤镜重复发。 X/Twitter 的特殊约束 X 的内容必须控制在 260 字符内,这反而成了优势:短文本的查重更依赖精确匹配,独立生成后撞车的概率已经很低。但短文本也更容易出现"撞开头"——两条内容都以"How to..."开头,在前 20 个字符内就完全一致。我们在 X 的生成提示词里加入了开头句式轮换表。 一个反直觉的结论 防判重的最佳实践不是"让 AI 写得更像人",而是让每条内容的生成本身就是一个独立事件——独立的上下文、独立的随机种子、独立的发布账号。把"生成"这个动作从"写一篇然后分发"改成"每个账号自己写",规模化与原创性就不再矛盾。这是 XPANZ 内容引擎的核心假设,90 天实测支持它。
XPANZ 产品团队
产品与运营
2026年9月18日