我正在为朋友检查一些代码,并且发现构建其网站的开发人员开始使用正斜杠src
,href
和include
{1}}。
例如:
/
我以前从未见过这个。所以我的问题是,为什么开发人员会在相对路径的开头放置正斜杠src="/assets/js/jquery.js"
?
答案 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
希望有所帮助