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)。
复现步骤
- 运行
yarn docs:dev - 打开
http://localhost:5173 - 点击导航栏中的语言切换器,选择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
相关产品推荐
相关产品推荐

