System:
OS: macOS 14.2.1
Binaries:
Node: 21.3.0
Yarn: 1.22.19
npm: 10.2.4
pnpm: 8.15.4
bun: Not Found
Browsers:
Chrome: 122.0.6261.129
Edge: Not Found
Safari: 17.2.1
npmPackages:
@vuepress/bundler-vite: 2.0.0-rc.8 => 2.0.0-rc.8
@vuepress/bundler-webpack: Not Found
@vuepress/cli: Not Found
@vuepress/client: Not Found
@vuepress/core: Not Found
@vuepress/markdown: Not Found
@vuepress/shared: Not Found
@vuepress/utils: Not Found
vue: ^3.4.21 => 3.4.21
vue-router: Not Found
vuepress: ^2.0.0-rc.8 => 2.0.0-rc.8
Description
当 md 文件名中包含 中文时,且 该文件定义了
frontmatter.permalink
, 如果使用了[xxx](./测试1.md)
用文件名作为跳转链接,将会跳转到 404。初步排查是由于 文件路径编码引发。 /core/src/app/prepare/prepareRoutes.ts ,在生成
redirects
时,redirect
使用的是 未编码的 文件路径。 而在 linksPlugin 中,生成 链接路径的resolvePaths
函数中会对 文件路径进行 编码。 导致在 client 端中的resolveRoutePath
函数 未查找到 重定向地址。 在 router.beforeResolve 钩子跳转到了 404 。Reproduction
https://stackblitz.com/edit/vuepress-svx1ub?file=docs%2FREADME.md
Used Package Manager
pnpm
System Info