站点、导航与元数据
配置站点身份、导航、SEO 元数据与 Cloudflare 品牌信息。
大部分品牌替换从 src/config 开始,路由级 SEO 则由 src/lib/seo.ts 构建。
这些值应与公开 Worker 域名及 public 中的品牌资源保持一致。
配置文件
| 文件 | 自定义内容 |
|---|---|
src/config/website-config.ts | 名称、描述、应用名、站点 URL、OG 图、关键词、社交账号、发件人与支持邮箱 |
src/config/social-config.ts | 把已配置的社交账号和支持邮箱转成图标链接 |
src/config/footer-config.ts | 产品、资源、公司与法律 footer 分组 |
src/config/route-config.ts | 导航与认证重定向共用的 Routes 常量 |
src/config/user-sidebar-config.ts | Dashboard 分组与角色可见性;演示模式可显示管理员导航 |
src/config/docs-sidebar-config.ts | 显式文档侧栏链接 |
src/config/docs-common-config.ts | 文档标题、描述、首页/文档链接、仓库链接与侧栏默认值 |
稳定的应用路径应复用 Routes,不要散落在组件中。语言感知 UI 再通过
LocaleLink、localizePath 或 useLocaleRouter 处理这些路径。
侧栏的角色可见性只是展示逻辑,不是授权。管理员路由仍需在 beforeLoad 调用
requireAdmin,对应 API 也必须校验角色。
TanStack Start 中的 SEO
这里没有 Next.js 的 metadataBase 或 opengraph-image.tsx 约定。
src/lib/seo.ts 导出 buildSeoMeta(),路由的 head() 把它生成的 meta 与
links 数组合入文档 head:
export const Route = createFileRoute("/{-$locale}/_marketing/about")({
head: () =>
buildSeoMeta({
title: "About",
description: "Learn about the product.",
path: "/about",
}),
component: AboutPage,
})该辅助函数生成标题、描述、robots、Open Graph、Twitter、canonical 与语言 alternate;文章还可传入发布/修改时间与标签。
canonical 域名目前来自 websiteConfig.metadata.siteUrl;BETTER_AUTH_URL
则独立控制 Better Auth 的 origin。请把两者设为同一个部署域名(例如
https://app.example.com),让 canonical、认证链接/cookie、OAuth callback 与
公开路由保持一致。
metadata: {
siteUrl: "https://app.example.com",
ogImage: "/og.png",
}src/routes/sitemap[.]xml.ts 提供 /sitemap.xml。它汇总固定营销路径及多语言
博客、法律页和文档,进行 XML 转义,并返回一小时公开缓存。新增需要收录的应用
路由时,应加入 marketingPaths 或对应内容 source。
品牌替换清单
替换身份与资源
更新 websiteConfig,替换 public 下的 logo、favicon、OG 图和其他资源;删除
过时关键词与占位社交账号。
更新通信身份
把 websiteConfig.mail.fromEmail 设为已验证发送域名上的地址,supportEmail
设为接收联系消息的邮箱。同时修改法律内容和 React Email 模板中的公司文案。
检查导航
一起修改 footer、dashboard 侧栏、文档链接与 Routes 常量。在中英文下测试内部
链接,并让授权逻辑独立于菜单可见性。
对齐公开域名
将 websiteConfig.metadata.siteUrl、生产 BETTER_AUTH_URL、OAuth callback 与
provider webhook/callback 都指向同一个公开 origin。公开路径变化后检查每个路由的
head()。
重命名 Cloudflare 部署
修改 wrangler.jsonc 中的 name、自定义域名 routes 和 BETTER_AUTH_URL
vars。若 D1/R2 也改名,还要同步资源配置与数据库 migration 命令。
验证
- 页面标题、描述、canonical 与语言 alternate 使用新域名。
-
/sitemap.xml包含预期的中英文、博客、法律页与文档 URL。 - Logo、favicon、OG 图、footer、社交链接与支持邮箱均已替换。
- Dashboard 导航按角色显示,同时受保护路由/API 会拒绝未授权用户。
- 认证 callback 与 cookie 在 SEO 使用的同一 origin 上正常工作。
