为什么开发人员会在每个相对路径的开头放置正斜杠?

时间:2011-09-30 16:22:16

标签: html hyperlink relative-path

我正在为朋友检查一些代码,并且发现构建其网站的开发人员开始使用正斜杠srchrefinclude {1}}。

例如:

/

我以前从未见过这个。所以我的问题是,为什么开发人员会在相对路径的开头放置正斜杠src="/assets/js/jquery.js"

3 个答案:

答案 0 :(得分:69)

这样做是为了根路径(使其成为绝对路径)。

它确保路径不是相对的,而是从站点的根目录读取。

这允许人们移动文件而不必更改指向不同资源的链接。

使用您的示例:

src="/assets/js/jquery.js"

如果引用文件位于/pages/admin/main.html(例如)中,则使用相对路径:

src="../../assets/js/jquery.js"

假设您将文件移动到子目录。使用原始根路径不需要进行任何更改,但相对的路径需要更改为:

src="../../../assets/js/jquery.js"

答案 1 :(得分:29)

添加@Oded's answer,斜杠使URL绝对。

例如:

/foo/bar/baz.css

这转换为:

http://www.example.com/foo/bar/baz.css

但如果没有斜线,情况会有所不同:

foo/bar/baz.css

这告诉浏览器查看目录foo当前文件夹(不是根文件夹),然后查看后续目录和文件。


另外,举个例如HTML:

<script type="text/javascript" src="foo.js"></script>

如果将HTML文件移动到另一个文件夹,则不会加载脚本,因为foo.js未随HTML文件一起移动。

但是如果你使用绝对URL:

<script type="text/javascript" src="/foo.js"></script>

然后,无论HTML文件在哪里,都会从http://www.example.com/foo.js

答案 2 :(得分:8)

这是为了确保资产来自Web服务器的“根”。

e.g。 主持人是www.example.com 网址变为www.example.com/assets/js/jquery.js

我通过项目实现这一点,我希望确保在自己的虚拟主机上实现。

问题实际上归结为包含这些资产的地方。例如,如果资产是从/ help / pages / faq中包含的,那么当站点托管在不变的主机上时,开发人员可以确保该路径能够正常工作。 example.com。

使用相对路径'assets / js / jquery.js'的问题是,如果从/ help / pages / faqs中包含资产,那么路径将变为相对于该起始点,例如/help/pages/faqs/assets/js/jquery.js

希望有所帮助