给定两个绝对路径,例如:
/var/data/stuff/xyz.html
/var/data
如何创建一个以第二个路径为基础的相对路径?在上面的例子中,结果应该是: stuff/xyz.html
另一个例子:
/relative/sub/foo/sub/file
/relative/path
../../../path
这类似于 这个问题,但我正在寻找最佳的JavaScript解决方案,而不是Java。
给定两个绝对路径,例如:
/var/data/stuff/xyz.html
/var/data
/relative/sub/foo/sub/file
/relative/path
../../../path
在处理URL时很容易犯错,因此我强烈建议使用库来处理所有细节。
URI.js使这变得简单:
URI('/var/data/stuff/xyz.html').relativeTo('/var/data');
JS URL API现在应该在浏览器中处理此问题:https://developer.mozilla.org/en-US/docs/Web/API/URL/URL
new URL(url,base)
// Base urls
let m = 'https://developer.mozilla.org';
let a = new URL("/", m); // => 'https://developer.mozilla.org/'