做一点澄清,
据我所知,这些是相对和绝对的路径,
Completely relative: <img src="kitten.png"/>
Absolute in all respects: <img src="http://www.foo.com/images/kitten.png">
相对路径和绝对路径之间有什么区别?
使用这些路径是否存在任何性能问题?
我们会为这些网站获得安全保障吗?
有没有办法将绝对路径转换为相对路径
答案 0 :(得分:50)
引用根目录的路径称为绝对。 引用当前目录的路径称为 relative 。
答案 1 :(得分:40)
相对路径和绝对路径之间有什么区别?
必须根据另一个URI计算一个。另一个没有。
使用这些路径是否存在任何性能问题?
没什么重要的。
我们会为这些网站获得安全保障吗?
没有
有没有办法将绝对路径转换为相对路径
在真正的简化术语中:从左到右工作,尝试匹配方案,主机名,然后使用您尝试相对的URI匹配路径段。当你有比赛时停止。
答案 2 :(得分:27)
完全相对:
<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
等等。
答案 3 :(得分:9)
想象一下,您在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
在HTML和Javascript中,base_path基于打开的窗口。在大型JavaScript项目中,您需要BASEPATH
或root
变量来偶尔存储base_path。 (如this)
在CSS中,打开的网址是存储或加载.css的地址,在这种情况下,它与当前打开的窗口的javascript不同。
为了在绝对路径中更安全,建议使用//
代替http://
,以便将来可能迁移到https://
。在您自己的示例中,以这种方式使用它:
<img src="//www.foo.com/images/kitten.png">
答案 4 :(得分:8)
相对路径
相对路径假定文件位于当前服务器上。通过使用相对路径,您可以离线构建站点并在上载之前对其进行全面测试。
例如:
php/webct/itr/index.php
绝对路径
绝对路径是指使用其完整URL在Internet上的文件。绝对路径可以准确地告诉浏览器去哪里。
例如:
http://www.uvsc.edu/disted/php/webct/itr/index.php
绝对路径更易于使用和理解。但是,在您自己的网站上这不是一个好习惯。首先,使用相对路径允许您离线构建站点并在上载之前对其进行全面测试。如果您使用绝对路径,则必须在上传代码之前更改代码才能使代码正常工作。如果您不得不移动您的网站或更改域名,也会出现这种情况。
参考:http://openhighschoolcourses.org/mod/book/tool/print/index.php?id=12503
答案 5 :(得分:0)
如果您使用http://www.foo.com/abc上的相对版本,您的浏览器会在http://www.foo.com/abc/kitten.png处查看该图片,并获得404 - 未找到。
答案 6 :(得分:0)
走向亲戚:
走向绝对:
答案 7 :(得分:0)
我认为这个例子可以帮助您更简单地理解这一点。
Windows中的路径差异
Windows绝对路径 C:\的Windows \ CALC.EXE
Windows非绝对路径(相对路径) CALC.EXE
在上面的示例中,绝对路径包含文件的完整路径,而不仅仅是非绝对路径中显示的文件。在此示例中,如果您位于不包含“calc.exe”的目录中,则会收到错误消息。但是,使用绝对路径时,您可以在任何目录中,计算机将知道打开“calc.exe”文件的位置。
Linux中的路径差异
Linux绝对路径 /家庭/用户/ C / computerhope /的public_html /的cgi-bin
Linux非绝对路径(相对路径) /的public_html /的cgi-bin
在这些示例中,绝对路径包含该计算机上cgi-bin目录的完整路径。 如何在Linux中查找文件的绝对路径 由于大多数用户不希望将完整路径视为提示,因此默认情况下,提示相对于其个人目录,如上所示。要查找当前目录的完整绝对路径,请使用pwd命令。
最佳做法是使用相对文件路径(如果可能)。
使用相对文件路径时,您的网页不会绑定到您当前的基本网址。所有链接都可以在您自己的计算机(localhost)以及您当前的公共域和未来的公共域上运行。