最近我在阅读一些网页,发现有很多用法,例如:
href="/./foo/bar.php"
这不是一样href="/foo/bar.php"
吗?还是我不知道这两种方式之间的区别?
相对 URL/./foo/bar.php
与相对 URL 不同/foo/bar.php
。前者/.
一开始就有。
但是,它们具有相同的效果。在处理 URL 时,将相对 URL 解析为绝对 URL,在此过程中,如果相对 URL 以 开头/./
,则将其替换为/
。参考:STD 66,条款删除点段。(这样的引用转而解析为相对于服务器根目录,基本上类似于http://www.example.com/foo/bar.php
.)
所以这两个相对 URL总是解析为同一个绝对 URL。通常没有理由使用更长的 URL,这看起来更复杂和令人困惑。
请注意,这与文件夹或文件完全无关。它只是基于 URL 标准的字符串操作。URL 是否映射到文件夹和文件是由服务器自行决定的,并且原则上对其外部的世界是不可见的。