[BUG]相对路径链接错误

操作系统:Win10 企业版 LTSC 1809 简体中文版

软件版本:v0.12.19

软件设置:内部链接类型选“插入基于当前笔记的相对路径”,无论是否使用wiki链接形式。

不同目录中存在同名附件时链接错误

按下图左侧所示建立目录和测试用文件。目的是测试在不同目录下存在同名附件时是否有问题。

上图中“根目录文件”里面插入一张黑猫图,然后在“目录中的文件”里面插入一张白狗图,但“目录中的文件”显示的也是黑猫图,然而在对应的附件目录中存放的的确是白狗图。

错误分析:感觉Obsidian把“文件夹/文件”这种形式的链接既视为绝对路径,又视为相对路径,混淆了,所以导致这个错误。

不同目录中存在同名文件时链接错误

按下图左侧所示搭建测试目录结构和测试用文件。目的是测试在不同目录下存在相同文件名的笔记时链接笔记是否有问题。

ObsidianWikiLinkBug1

第一行链接的是“/文件夹1/测试”,这个没有问题。

问题出在第二行,我输入 [[之后在下拉列表选择的是“文件夹2/文件夹1/测试”,显示的链接看上去也像是相对路径。但预览时其显示的是“/文件夹1/测试”的内容。

错误分析:和上一个错误一样,感觉Obsidian把“文件夹1/测试”这种形式作为绝对路径而非相对路径,又或者是概念上有点混淆,既视为绝对路径,又视为相对路径,导致这个错误的发生。按我的认识,绝对路径应该以斜杠开头,例如:“/文件夹1/测试”,这种形式才是绝对路径,而任何不是以斜杠开头的路径应视为相对路径,包括“./”,“../”和“文件夹1/测试”这些形式。

移动文件导致链接错误

ObsidianLinkBug1

如上图所示测试4种链接形式,预览时只有第3个是链接“/文件夹2/文件夹1/测试”,其余都是链接“/文件夹1/测试”。

将“需要移动的文件”从“/文件夹2”移动到“/文件夹2/文件夹3”目录中,则链接变为下图所示。

ObsidianLinkBug2

此时没有变化,依然是除第3个链接“/文件夹2/文件夹1/测试”之外,其余都是链接“/文件夹1/测试”,算是正常。

再将“需要移动的文件”移动回“/文件夹2”目录,则文件链接更新为下图所示。

ObsidianLinkBug3

这时所有4行都链接“/文件夹1/测试”这个文件,出问题了。而且第4个链接虽然预览的时候可以链接“/文件夹1/测试”,但严格来说其表示的路径是不对的。

我为什么想使用相对路径,而不想使用Obsidian推荐的简洁链接方式

之所以想使用相对路径,是因为在使用简洁链接方式时,Obsidian是不支持库的嵌套的,也就是说不能把几个独立的小知识库整合为一个大知识库。但如果改用相对路径的话,我认为是可行的,燃鹅在测试相对路径的时候发现上述问题。我也对简洁链接方式进行了类似的测试,好像没有问题,估计在使用简洁链接方式时Obsidian是用绝对路径的方式来处理的。

1 个赞

选择相对路径时,并不很严格,路径不对的时候,图片唯一也能正确显示。这种不严格大概就是有这个负作用吧,图片不唯一时可能不对。

我觉得一个笔记软件不能存在这样的错误吧。不同目录层级中存在相同文件夹名称,又或者不同文件夹中存在相同文件名的可能性都是有可能的,特别是当知识库越来越大的时候。另外移动文件归类整理也是常有的事,这样也会导致链接的内容发生改变的话,那这个软件还怎么用啊 :sweat:如果说一个软件足够聪明,那它可以允许我们不严格的表述,但它不能不严格的随意返回链接的内容,尤其是对于一个笔记软件来说,我觉得出现这种错误根本没法用。所以还请Obsidian的开发团队认真测试一下我说的情况看是不是真的有问题。也建议大家测试一下自己在用的链接方式是否有问题。
我还发现一些热门的第三方插件会导致另一些链接问题,禁用之后问题就没有了。所以到那个插件的GitHub地址看了一下,原来那个插件真有些bug报告,有些甚至是作者自己发上去的,但状态显示open,就是说问题未解决。所以使用非官方插件的话可能会引入更多问题。

如果笔记不聪明一点,严格按链接,反而会好些。我的链接目标文件名都是唯一的,目前没有这个问题。

1 个赞

+1,很希望能被修复,或者明确解决方案和原因,以及提示使用相对链接的用户~

+1,很希望能被修复,或者明确解决方案和原因,以及提示使用相对链接的用户~