我正在编写一个程序,其中一个组件必须能够接受给定的路径(例如/help/index.html
或/help/
)和基于该位置的相对路径(例如../otherpage/index.html
、sub/dir/of/help/
或help2.html
),并生成由相对路径所暗示的绝对路径。请考虑下面的目录树。
/
index.html
content.txt
help/
help1.html
help2.html
文件index.html
包含一个类似于help/help1.html
的链接。程序需要接收/
或/index.html
,并将其与help/help1.html
组合以获取/help/help1.html
。
同样,文件/help/help1.html
具有链接../content.txt
,程序需要返回/content.txt
。是否有合理的方法来实现这一点?
谢谢。:)
编辑: 感谢Stephen Weinberg!对于未来的每个人,这是我使用的代码。
func join(source, target string) string {
if path.IsAbs(target) {
return target
}
return path.Join(path.Dir(source), target)
}
func join(source, target string) string { if path.IsAbs(target) { return target } return path.Join(path.Dir(source), target) }
- Alexander Bauerhttp://example.com/a/b
与/合并:它应该是http://example.com/
,但实际上返回的是http://example.com/a
。 - vad