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

IT技术 javascript html css
2021-02-05 00:33:18

有小的澄清,

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

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

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

使用这些路径是否会出现任何性能问题?

我们会为网站提供任何安全保障吗?

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

6个回答

引用根目录的路径称为绝对路径参考当前目录的路径称为relative

我相信相对路径,因为它不依赖于任何位置?
2021-03-17 00:33:18
哪个是连击/更快的相对还是绝对的?
2021-03-29 00:33:18

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

必须相对于另一个 URI 计算一个。另一个没有。

使用这些路径是否会出现任何性能问题?

没什么大不了的。

我们将获得任何安全的网站?

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

真正简化的术语来说:从左到右工作,尝试将方案、主机名和路径段与您尝试与之相关的 URI 匹配。当你有比赛时停下来。

当您对性能没有任何重要说明时,如果您的项目有 100 万个使用 ./ 语法的相对链接和 100 万个使用 ~/ 语法的虚拟/绝对链接怎么办。他们一个接一个地被召唤。使用其中一种方法会降低性能吗?
2021-03-22 00:33:18
@EricB — 加载带有描述链接的 HTML 的页面时,性能差异很重要,而不是解析链接时。传输级别的 gzip 压缩可能会消除差异。在一个页面中有 1,000,000 个链接会使它成为一个非常愚蠢的页面。
2021-04-11 00:33:18

完全相对:

<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

等等。

对于 Windows 没有区别 - '/' 和 '\'
2021-03-13 00:33:18

相对路径

相对路径假定文件在当前服务器上。使用相对路径允许您离线构建站点并在上传之前对其进行全面测试。

例如:

php/webct/itr/index.php

.

绝对路径

绝对路径是指 Internet 上使用其完整 URL 的文件。绝对路径告诉浏览器准确的去向。

例如:

http://www.uvsc.edu/disted/php/webct/itr/index.php

绝对路径更易于使用和理解。但是,这在您自己的网站上并不是一个好习惯。一方面,使用相对路径允许您离线构建站点并在上传之前对其进行全面测试。如果要使用绝对路径,则必须在上传代码之前更改代码才能使其正常工作。如果您不得不移动站点或更改域名,情况也会如此。

参考:http : //openhighschoolcourses.org/mod/book/tool/print/index.php?id=12503

绝对路径不仅仅指互联网上的文件。“绝对路径定义为从根目录(/)指定文件或目录的位置。换句话说,我们可以说绝对路径是从/目录开始的实际文件系统的完整路径。”
2021-04-01 00:33:18

想象一下,您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 项目中,您偶尔需要一个BASEPATHorroot变量来存储 base_path 。(像这样

在 CSS 中,打开的 url 是您的 .css 存储或加载的地址,在这种情况下,它与当前打开的窗口的 javascript 不同。

并且为了在绝对路径中更安全,建议使用//而不是http://将来可能迁移到https://. 在您自己的示例中,以这种方式使用它:

<img src="//www.foo.com/images/kitten.png">