javascript中相对path和绝对path的区别
有一些小的澄清,
据我所知,这是相对和绝对的path,
Completely relative: <img src="kitten.png"/> Absolute in all respects: <img src="http://www.foo.comhttp://img.dovov.comkitten.png">
相对path和绝对path有什么区别?
使用这些path是否有任何性能问题?
我们将得到任何安全的网站?
有没有办法将绝对path转换为相对path
相对path和绝对path有什么区别?
必须对另一个URI进行计算。 另一个没有。
使用这些path是否有任何性能问题?
没什么意义
我们将得到任何安全的网站?
没有
有没有办法将绝对path转换为相对path
简而言之:从左到右,尝试将scheme,主机名,path段与您尝试相对的URI相匹配。 当你有一场比赛时停止。
引用根目录的path称为绝对path。 引用当前目录的path称为相对path。
完全相对:
<img src="kitten.png"/>
这确实是一个相对path。
绝对在各个方面:
<img src="http://www.foo.comhttp://img.dovov.comkitten.png"/>
这是一个url,从某种程度上可以看作是一个绝对path,但这并不代表这个问题。
相对path和绝对path之间的区别在于,当使用相对path作为当前工作目录的引用时,使用绝对path引用某个已知的目录。 如果某些程序必须使用某些可以使用工作目录打开的文件夹中的资源作为起点,则相对path很有用。
相对path示例:
-
image.png
,相当于.\image.png
(在Windows中)或./image.png
(在其他地方)。 的.
明确指定你正在expression一个相对于当前工作目录的path,但是当path不是从一个根目录(用斜杠指定)开始的时候,这是隐含的,所以你不必一定要使用它(除了在某些情况下,除非您明确指定某个目录,否则将应用默认目录(或要search的目录列表)。 -
..\images\image2.jpg
这种方式,您可以从文件夹树的某个目录访问资源。..\
意味着您已经退出当前文件夹,进入包含工作文件夹和images
文件夹的目录。 再次,在Windows和/
其他地方使用\
。
绝对path示例:
-
D:\documents\something.doc
-
E:\music\good_music.mp3
等等。
想象一下你在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
variables来偶尔存储base_path。 (像这样 )
在CSS中,打开的url是您的.css被存储或加载的地址,在这种情况下,它与当前打开的窗口的javascript不同。
为了在绝对path中更安全,build议使用//
而不是http://
,以便将来可能迁移到https://
。 在你自己的例子中,这样使用它:
<img src="//www.foo.comhttp://img.dovov.comkitten.png">
相对path
相对path假定该文件位于当前服务器上。 使用相对path允许您离线构build您的站点,并在上传之前对其进行全面testing。
例如:
php/webct/itr/index.php
。
绝对path
绝对path是指Internet上使用其完整URL的文件。 绝对path告诉浏览器准确的去向。
例如:
http://www.uvsc.edu/disted/php/webct/itr/index.php
绝对path更易于使用和理解。 但是,在您自己的网站上这不是一个好习惯。 首先,使用相对path允许您离线构build您的站点,并在上传之前对其进行全面testing。 如果您使用绝对path,则必须在上传代码之前更改代码才能使其工作。 如果您不得不移动您的网站或者您更改了域名,也会出现这种情况。
参考: http : //openhighschoolcourses.org/mod/book/tool/print/index.php?id=12503
如果您使用http://www.foo.com/abc上的相关版本,您的浏览器将查看图像的http://www.foo.com/abc/kitten.png ,将获得404 – 未find。
相对:
- 你可以下载一个自包含的目录(也许是一个压缩文件),并从本地打开HTML或XML的链接,而无需到达服务器。 这大大提高了速度性能,特别是如果你必须处理一个缓慢的networking。
绝对:
- 您将不得不吞下networking速度,但就安全性而言,如果(且仅当…)对您有好处,则可以防止某些用户查看某些文件或增加networkingstream量。
我想这个例子会帮助你更简单地理解这个。
Windows中的path差异
Windows绝对pathC:\ Windows \ calc.exe
Windows非绝对path(相对path)calc.exe
在上面的例子中,绝对path包含文件的完整path,而不是绝对path中的文件。 在这个例子中,如果你在一个不包含“calc.exe”的目录中,你会得到一个错误信息。 但是,使用绝对path时,可以在任何目录中,计算机将知道在哪里打开“calc.exe”文件。
Linux中的path差异
Linux绝对path/ home / users / c / computerhope / public_html / cgi-bin
Linux非绝对path(相对path)/ public_html / cgi-bin
在这些例子中,绝对path包含该计算机上cgi-bin目录的完整path。 如何在Linux中查找文件的绝对path由于大多数用户不想看到完整的path作为他们的提示,默认情况下提示是相对于他们的个人目录,如上所示。 要查找当前目录的完整绝对path,请使用pwd命令。
使用相对文件path是最好的做法(如果可能的话)。
使用相对文件path时,您的网页将不会绑定到您当前的基本url。 所有链接将在您自己的计算机(本地主机)以及您当前的公共领域和未来的公共领域中工作。