-
Notifications
You must be signed in to change notification settings - Fork 923
Closed
Labels
Description
Bug report
Description
你可以学到在五十一[吃喝](./吃.md)[玩乐](./玩.md),吃[穿](./穿.md)[住](./住.md)[行](./行.md)的方式。
如题,当我在 MD 中使用如上的文本建立内部链接后,点击链接会跳转到对应地址,但显示 404 错误,刷新后对应网页出现。
如果相对路径是从 docs
根文件夹出发的话,那么就可以正常链接。
推测问题应该是生成相对链接时部分情况可以完全被 url encode,部分情况则不行,详情见下文。
### [一、学校章程制度](../../规章制度/文件/一、学校章程制度/) <--正常
### [二、常规管理相关条例](../文件/二、常规管理相关条例/) <--不正常
### [三、宿舍管理规定](./三、宿舍管理规定/) <--不正常
└─ docs
├─ 规章制度
│ ├─ 文件
│ │ ├─ 一、学校章程制度
│ │ ├─ 二、常规管理相关条例
│ │ ├─ ...
│ │ └─ 三、宿舍管理规定
│ ├─ ...
│ └─ README.md # 我在这
├─ ...
└─ README.md
同理,我上文不正常文件,把链接改成从根目录出发就正常了:
你可以学到在五十一[吃喝](../学校生活/吃.md)[玩乐](../学校生活/玩.md),吃[穿](../学校生活/穿.md)[住](../学校生活/住.md)[行](../学校生活/行.md)的方式。
Steps to reproduce
我的项目已经用上文方法修改过了,所以如果需要复现,烦请用自己的项目。
- 在
docs
内建立多级文件夹,可以如上文。 - 在子文件夹文件中 (例如
docs/规章制度/文件/README.md
)中编入内部链接(例如[一、学校章程制度](./一、学校章程制度/)
)。 - 点击这个链接,复现问题:即点击后出现 404,刷新页面正常呈现。
- 试试把相对链接改为从根目录出发(例如:
./一、学校章程制度/
换成../../规章制度/文件/一、学校章程制度/
)。 - 链接应该恢复正常,注意观察两次生成的
a
标签的href
属性。
- Reproduction link / repo: ENDsoft233/51book
Expected behavior
预期的行为应是正常使用相对路径,生成的链接点击后直接进入,而不需要额外刷新。
Screenshots
直接出发渲染的超链接:
从根目录出发渲染的超链接:
复现动图:
Environment info
- Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36
- Output of
vuepress info
:
Environment Info:
System:
OS: Windows 10 10.0.19043
CPU: (8) x64 Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz
Binaries:
Node: 14.14.0 - C:\Program Files\nodejs\node.EXE
Yarn: 1.22.10 - C:\Program Files\nodejs\yarn.CMD
npm: 6.14.8 - C:\Program Files\nodejs\npm.CMD
Browsers:
Edge: 44.19041.1023.0
npmPackages:
@vuepress/core: 2.0.0-beta.22
@vuepress/theme-default: 2.0.0-beta.22
vuepress: ^2.0.0-beta.22 => 2.0.0-beta.22
npmGlobalPackages:
vuepress: Not Found