给出两条绝对路径,例如
/var/data/stuff/xyz.html
/var/data
如何创建使用第二条路径作为基础的相对路径?在上面的示例中,结果将是:stuff / xyz.html
另一个例子:
/relative/sub/foo/sub/file
/relative/path
../../../path
这与this question类似,但我正在寻找最佳的JavaScript解决方案,而不是Java。
答案 0 :(得分:7)
如果您在使用node.js的服务器上运行它:
http://nodejs.org/api/path.html#path_path_relative_from_to
这是他们的实施:
https://github.com/joyent/node/blob/master/lib/path.js#L233
这应该可以在浏览器中使用,而不需要进行任何更改。它已经过战斗测试,所以它已经处理了边缘情况。它不是一个单行,但它完美无缺,我认为更重要。 POSIX版本也不错,如果这是你需要支持的唯一想法。
答案 1 :(得分:1)
使用URL处理很容易出错,所以我强烈建议使用库来处理所有细节。
URI.js使这很简单:
URI('/var/data/stuff/xyz.html').relativeTo('/var/data');