首部/的作用
加/ 是根路径相对定位,不加/ 是当前路径相对定位,最终指向的 URL 会完全不同
href="/xxx" 中的 / 代表网站的根目录(比如 https://www.example.com/),不管当前页面在哪个层级,都会从根目录出发拼接路径。示例:
- 网站根目录:
https://www.example.com/
- 当前页面 URL:
https://www.example.com/a/b/c.html
href="/about" → 最终指向:https://www.example.com/about
href="/static/css/style.css" → 最终指向:https://www.example.com/static/css/style.css
href="xxx" 是相对于当前页面的 URL 路径拼接,相当于 “在当前文件夹里找目标资源”。示例(和上面同个网站、同个当前页面):
- 当前页面 URL:
https://www.example.com/a/b/c.html(当前目录是 /a/b/)
href="about" → 最终指向:https://www.example.com/a/b/about
href="static/css/style.css" → 最终指向:https://www.example.com/a/b/static/css/style.css
尾部/的作用
核心区别是是否默认指向 “目录” ,会影响服务器解析和最终跳转的 URL
当 URL 末尾带 / 时,浏览器和服务器会默认把它当作目录路径,优先查找目录下的默认索引文件(如 index.html、index.php 等)。示例:
href="https://www.example.com/about/" → 服务器会去 about 目录下找默认索引文件(如 about/index.html)
- 若当前页面是
https://www.example.com/a/,href="b/" → 指向 https://www.example.com/a/b/(目录)
末尾不带 / 时,服务器会先尝试当作文件路径查找;若找不到对应文件,会自动做 “重定向”—— 在末尾加上 /,再按目录查找默认索引文件。示例:
href="https://www.example.com/about" → 服务器先找 about 文件,找不到就重定向到 https://www.example.com/about/
- 若当前页面是
https://www.example.com/a/,href="b" → 先找 a/b 文件,找不到就重定向到 a/b/