有一些小的澄清:
据我所知,这些是相对路径和绝对路径:
Completely relative: <img src="kitten.png"/>
Absolute in all respects: <img src="http://www.foo.com/images/kitten.png">
相对路径和绝对路径有什么区别?
使用这些路径会出现性能问题吗?
这样做是否会增强网站的安全性?
有没有一种将绝对路径转换为相对路径的方法?
有一些小的澄清:
据我所知,这些是相对路径和绝对路径:
Completely relative: <img src="kitten.png"/>
Absolute in all respects: <img src="http://www.foo.com/images/kitten.png">
相对路径和绝对路径有什么区别?
使用这些路径会出现性能问题吗?
这样做是否会增强网站的安全性?
有没有一种将绝对路径转换为相对路径的方法?
以根目录为参考的路径称为绝对路径。 以当前目录为参考的路径称为相对路径。
<img src="kitten.png"/>
这确实是一个相对路径。
在所有方面都是绝对的:
<img src="http://www.foo.com/images/kitten.png"/>
这是一个URL,从某种意义上来说,它可以被视为绝对路径,但它并不代表这个问题。
相对路径和绝对路径的区别在于,使用相对路径时,您以当前工作目录为参考,而使用绝对路径时,您引用某个已知目录。当您制作一些程序需要使用某些文件夹中的资源时,相对路径非常有用,可以使用工作目录作为起点打开这些文件夹。
相对路径示例:
image.png
,相当于.\image.png
(在Windows中)
或./image.png
(其他任何地方)。
.
明确指定您正在表示路径
相对于当前工作目录,
但是每当路径不从根目录开始时,这是隐含的
(用斜杠指定),因此您不必一定使用它
(除非在某些上下文中应用默认目录
(或要搜索的目录列表)
将被应用,除非您明确指定某个目录)。
..\images\image2.jpg
这样,您可以从文件夹树中向上访问资源。 ..\
表示您已退出当前文件夹,
进入包含工作和 images
文件夹的目录。
同样,在Windows中使用\
,在其他任何地方使用/
。
绝对路径示例:
D:\documents\something.doc
E:\music\good_music.mp3
等等。
相对路径
相对路径假设文件位于当前服务器上。使用相对路径可以使您脱机构建网站并进行全面测试,然后再上传。
例如:
php/webct/itr/index.php
.
绝对路径
绝对路径是指使用完整的URL引用互联网上的文件。绝对路径告诉浏览器确切要前往哪个位置。
例如:
http://www.uvsc.edu/disted/php/webct/itr/index.php
绝对路径更易于使用和理解。然而,在您自己的网站上使用它并不好。首先,使用相对路径可以使您脱机构建网站并进行全面测试,然后再上传。如果您使用绝对路径,则必须在上传之前更改代码才能使其正常工作。如果您曾经需要移动网站或更改域名,那么这也是必需的。
参考资料:http://openhighschoolcourses.org/mod/book/tool/print/index.php?id=12503
想象一下,您在 http://www.foo.com/bar/page.html
上打开了一个窗口。
在 HTML、Javascript 和 CSS 中:
opened_url = http://www.foo.com/bar/page.html
base_path = http://www.foo.com/bar/
home_path = http://www.foo.com/
/kitten.png = Home_path/kitten.png
kitten.png = Base_path/kitten.png
<img src="//www.foo.com/images/kitten.png">
相对路径:
绝对路径:
我认为这个例子会帮助你更简单地理解。
Windows中的路径差异
Windows绝对路径 C:\Windows\calc.exe
Windows非绝对路径(相对路径) calc.exe
在上面的例子中,绝对路径包含文件的完整路径,而非绝对路径只包含文件。在这个例子中,如果你在不包含“calc.exe”的目录中,你会收到一个错误消息。然而,当使用绝对路径时,你可以在任何目录中,计算机都知道在哪里打开“calc.exe”文件。
Linux中的路径差异
Linux绝对路径 /home/users/c/computerhope/public_html/cgi-bin
Linux非绝对路径(相对路径) /public_html/cgi-bin
在这些例子中,绝对路径包含该计算机上cgi-bin目录的完整路径。 如何在Linux中找到文件的绝对路径 由于大多数用户不想看到完整路径作为提示符,因此默认情况下提示符是相对于他们的个人目录的,如上所示。要查找当前目录的完整绝对路径,请使用pwd命令。
最好的做法是尽可能使用相对文件路径。
当使用相对文件路径时,你的网页将不受当前基本 URL 的限制。所有链接都将在你自己的计算机(本地主机)以及当前公共域和未来的公共域上正常工作。