小编典典
(已更新,使其更具可读性)
这就是相对路径应该如何工作的方式。
假设当前地址是这样的:
绝对: protocol://some.domain.name/dir1/dir2/filename
如果仅指定新文件名“ foo”,则将获得相同的协议,主机和目录,只更改文件名:
相对的: foo
绝对: protocol://some.domain.name/dir1/dir2/foo
如果指定整个路径“ / dir3 / filename2”,则将获得相同的协议和主机名,但具有另一个路径:
相对的: /dir3/filename2
绝对: protocol://some.domain.name/dir3/filename2
您还可以指定主机名“ //another.domain.name/dir5/filename3”,并获得相同的协议,但使用另一个主机,dir和文件名:
相对的: //another.domain.name/dir5/filename3
绝对: protocol://another.domain.name/dir5/filename3
可能令人困惑的是,如果指定的URL指向目录而不是文件,则Web服务器内部可以在URL的末尾添加/。
protocol://some.domain.name/somename
如果“ somename”是目录,则网络服务器可能会将其转换为目录(可能带有重定向)
protocol://some.domain.name/somename/
更新
正如cameron在评论中所说:作为参考,请参阅RFC1808第4部分中的步骤6。
2020-07-26
本文详细解释了相对URL如何根据当前地址改变文件名、路径和主机名。从基础的文件名替换到完全路径指定,再到跨域引用,各种情况都得到了清晰的阐述。同时提到了Web服务器可能对目录URL的处理,以及RFC1808中关于相对URL转换的参考内容。

被折叠的 条评论
为什么被折叠?



