javascript中相对路径和绝对路径的区别

时间:2014-01-23 11:13:23

标签: javascript html css

做一点澄清,

据我所知,这些是相对和绝对的路径,

Completely relative: <img src="kitten.png"/>   
Absolute in all respects: <img src="http://www.foo.com/images/kitten.png">

相对路径和绝对路径之间有什么区别?

使用这些路径是否存在任何性能问题?

我们会为这些网站获得安全保障吗?

有没有办法将绝对路径转换为相对路径

8 个答案:

答案 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项目中,您需要BASEPATHroot变量来偶尔存储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)

走向亲戚:

  • 您可以下载自包含目录(也许是压缩文件) 并在本地打开来自html或xml的链接,而无需访问 服务器。这显着提高了速度性能, 特别是如果你必须处理慢速网络。

走向绝对:

  • 您必须吞下网络速度,但在安全性方面 您可以阻止某些用户查看某些文件或增加 网络流量如果(并且只有......)对你有利。

答案 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)以及您当前的公共域和未来的公共域上运行。