fix(website): favicon 路径与文档站链接两处 404

实测发现两个问题,均导致线上 404:

1. favicon 不生效
   favicon.svg 放在 website/public/,但 srcDir 是 ./pages,
   VitePress 的 public 目录相对 srcDir 解析,即应为 pages/public/。
   原位置不被打包,每个页面的 /www/favicon.svg 全部 404。
   → 移到 website/pages/public/favicon.svg

2. 「文档中心」导航链接 404
   DOCS_URL 默认 '/docs/',VitePress 会给站内链接自动加 base 前缀,
   实际渲染成 '/www/docs/',而网关没有这个路径(文档站在 /docs/)。
   → 默认值改为完整 URL,VitePress 判定为外链不做前缀拼接

验证(SITE_BASE=/www/ 与 / 两形态)
- 页面引用完整性:146 → 139 条,失效 15 → 0
- HTTP 实测(模拟 nginx alias + try_files):8 页 200、
  CSS/JS/favicon 200、/www 301、不存在页 404
This commit is contained in:
Dai0814
2026-11-04 12:33:08 +08:00
parent d78379486c
commit 9cd518227d
2 changed files with 8 additions and 5 deletions
+8 -5
View File
@@ -17,12 +17,15 @@ const SITE_BASE = process.env.SITE_BASE ?? '/www/'
const REPO_URL = process.env.REPO_URL ?? 'https://git.5iot.com/iotlcm-public/iotlcm'
/**
* 文档站地址。文档站与官网是两个容器:
* - 过渡形态:文档站挂在网关的 /docs/ 下
* - 独立域名形态:文档站通常独占 docs.<域名> 或同域 /docs/
* 独立部署时用 DOCS_URL 覆盖。
* 文档站地址。文档站与官网是两个容器,由网关按路径分流:
* - 官网在 /www/ 下,文档站在 /docs/ 下,两者同级
*
* 注意:VitePress 会给所有站内链接自动加上 base 前缀,'/docs/' 会被拼成
* '/www/docs/'——而网关并没有这个路径,点击「文档中心」会 404。
* 因此默认值必须是完整 URL(VitePress 判定为外链,不做前缀拼接)。
* 独立部署时用 DOCS_URL 覆盖成实际地址。
*/
const DOCS_URL = process.env.DOCS_URL ?? '/docs/'
const DOCS_URL = process.env.DOCS_URL ?? 'http://open.5iot.com:5051/docs/'
export default defineConfig({
srcDir: './pages',

Before

Width:  |  Height:  |  Size: 344 B

After

Width:  |  Height:  |  Size: 344 B