You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VitePress多语言站点跳转/vi/ex.html的原因及路由机制咨询

问题:VitePress多语言站点切换时跳转到不存在的/vi/ex.html

问题描述

我正在使用VitePress构建多语言文档站点。切换至越南语版本时,VitePress有时会重定向至**/vi/ex.html**,但docs目录中并无ex.md或ex.html文件。

预期与实际行为

预期行为

  • 路由仅由已存在的.md文件生成
  • 访问/vi/应加载/vi/index.md

实际行为

  • 浏览器被重定向至/vi/ex.html
  • 该文件不存在,导致404页面

项目结构

.
|-- README.md
|-- docs
|   |-- Dockerfile
|   |-- docker-compose.build.yml
|   |-- docker-compose.yml
|   |-- nginx.conf
|   `-- src
|       |-- en
|       |   |-- dev-guide
|       |   |   |-- inventories
|       |   |   |-- policies
|       |   |   |-- roles
|       |   |   `-- users
|       |   |-- getting-started.md
|       |   |-- index.md
|       |   `-- user-guide
|       |       |-- inventories
|       |       |-- policies
|       |       |-- roles
|       |       `-- users
|       |-- index.md
|       |-- public
|       |   |-- favicon.png
|       |   |-- logo.png
|       |   |-- policies
|       |   |-- roles
|       |   `-- users
|       `-- vi
|           |-- dev-guide
|           |-- getting-started.md
|           |-- index.md
|           `-- user-guide
|-- package.json
|-- structure.txt
`-- yarn.lock

项目中不存在任何ex.md或ex.html文件。

相关配置

import { defineConfig } from 'vitepress'
import { withMermaid } from 'vitepress-plugin-mermaid'

export default withMermaid(
  defineConfig({
    title: 'Nexbus Docs',
    srcDir: './src',
    description: 'Documentation for me',

    themeConfig: {
      sidebar: sidebarEn,
    },

    locales: {
      root: {
        label: 'English',
        lang: 'en-US',
        link: '/en/',
        themeConfig: {
          sidebar: sidebarEn
        }
      },
      vi: {
        label: 'Tiếng Việt',
        lang: 'vi-VN',
        link: '/vi/',
        themeConfig: {
          sidebar: sidebarVi
        }
      },
    },
  })
)

侧边栏配置包含多个深层链接(例如/vi/dev-guide/users/users)。

复现步骤

  1. 运行yarn docs:dev
  2. 打开http://localhost:5173
  3. 点击导航栏中的语言切换器,选择Tiếng Việt或English

此时站点会重定向至/vi/ex.html。

临时解决方案

我通过VitePress路由强制启动时重定向作为临时解决方案:

//docs/index.md

<script setup>
import { useRouter } from 'vitepress'

const router = useRouter()
router.go('/en/')
</script>

这能避免跳转至/vi/ex.html,但只是权宜之计,并未解释根本原因。

疑问

为何VitePress会尝试导航至不存在的/vi/ex.html?多语言配置中的哪些设置或路由行为会导致此问题?


内容的提问来源于stack exchange,提问作者Toan Bui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 21:12:35