URL 路径中的点是什么意思?

问题描述 投票:0回答:3

在关于 jQuery Ajax 问题的问题中,提问者试图在相对 URL 的开头使用

.
。我建议他把它去掉,但不知道那里的点实际上有什么作用。

他的相对网址如下所示:

./delete-misc/test-ajax-code.php

我尝试查看 RFC,但没有成功。我知道点在命令行(Linux 或 Win)中的作用,它代表当前目录。

我想知道:这在互联网上的 URL 中是如何工作的?它有任何最佳实践用途吗?欢迎详细解释。

url directory path relative-path
3个回答
44
投票

路径段

.
通常用在相对路径引用的开头,并在引用解析期间被删除,即将相对URI引用解析为绝对URI的过程:

路径段“

.
”和“
..
”,也称为点段,是 为路径名层次结构中的相对引用而定义。他们 用于相对路径引用的开头 (第 4.2 节)指示层次结构中的相对位置 名字树。这类似于他们在某些运营中的角色 系统的文件目录结构来指示当前目录 和父目录。但是,与文件中不同 系统中,这些点段仅在 URI 路径内解释 层次结构并作为解决过程的一部分被删除(部分 5.2)。

删除点段算法描述了如何在特定的基本路径上下文中解释这些点段。

在您的情况下,

./delete-misc/test-ajax-code.php
delete-misc/test-ajax-code.php
是等效的。但在某些情况下,相对路径可能会被误解为绝对 URI,例如在第一个路径段中有一个
:
,例如
search:foo
,它与
./search:foo
不同,因为前者是绝对 URI,而后者是相对 URI 路径。


7
投票
URL前面的

A

./
相当于当前路径。所以
./delete-misc/test-ajax-code.php
delete-misc/text-ajax-code.php
都是相对路径。在您发布的答案中,您要求仅删除点,因此
/delete-misc/test-ajax-code.php
的路径将转换为绝对路径而不是相对路径。

编辑:还有一件事 -

.
是当前目录,
..
是父目录。正如 phihag 评论的那样,这些确实应该在代码中避免和保护。目录遍历可用于作恶。


0
投票

现在进行更简单的解释...

.
..
不等同!

./
../
不等同!

.
./
ARE 相当于
 

在所有情况下,

.
./
 
或“”相同,或者没有路径,因此不需要或在网络上使用。

.
(点)是旧 UNIX 路径系统 的遗物,不用于在 万维网 上创建路径!为什么?因为路径中的点是多余的,相当于“”或
no path
或您所在的当前文件目录。同样的结果适用于使用
./
。它与“”或
no path
相同。两者都只是引用您的文件所在的本地目录(“./webpage.html”=“webpage.html”)。

我应该使用什么路径?

  1. 所以永远不要使用
    .
    ./
    ,因为这两条路径都是不相关的!
  2. 始终使用
    ../
    ,这是一个相对路径,表示向上一个文件夹。
  3. 始终使用
    /
    ,这是绝对路径,表示从网站根文件夹开始。

想要更多证据吗?

查看这些图像路径的结果。假设您从存储在网站根目录中的 HTML 网页引用这些路径:

SUCCESSFUL PATHS ("../" and "/" paths work well on the Web)
<img src="../images/photo.jpg" />
<img src="/images/photo.jpg" />


REDUNDANT PATHS ("." not needed)
<img src="/images/./photo.jpg" />
...same as...
<img src="/images/photo.jpg" />


<img src="/images./photo.jpg" />
...same as...
<img src="/images/photo.jpg" />


FAILED PATHS ("." in paths that fail on the Web)
<img src="/images/.photo.jpg" />
<img src="./images/photo.jpg" />
© www.soinside.com 2019 - 2024. All rights reserved.