本文详解导航栏中相对路径导致的 url 拼接错误问题,通过使用绝对路径或根相对路径(root-relative path)修复“privacy”链接跳转到 https://example.com/example.com/privacy 的典型故障。
本文详解导航栏中相对路径导致的 url 拼接错误问题,通过使用绝对路径或根相对路径(root-relative path)修复“privacy”链接跳转到 https://example.com/example.com/privacy 的典型故障。
在 HTML 中,<a href="example.com/privacy"> 这类链接使用的是相对路径(relative URL),浏览器会将其视为相对于当前页面 URL 的子路径。例如,当用户位于 https://example.com/ 时点击该链接,浏览器会将 example.com/privacy 解析为当前路径下的子目录,即拼接为 https://example.com/example.com/privacy —— 这正是问题根源。
✅ 正确做法是采用以下两种可靠方案之一:
<nav> <a href="https://example.com">Fact Generator</a> <a href="https://example.com/privacy">Privacy</a> <a href="#">Contact</a></nav>
优点:语义清晰、无歧义,适用于多环境部署(如开发/生产域名不同);缺点:硬编码域名,后期需全局替换。
<nav> <a href="/">Fact Generator</a> <a href="/privacy">Privacy</a> <a href="#">Contact</a></nav>
以 / 开头的路径始终从网站根目录解析,无论当前页面 URL 是 https://example.com/、https://example.com/about/ 还是 https://example.com/blog/post/,/privacy 都会准确指向 https://example.com/privacy。这是现代前端项目的主流实践。
⚠️ 注意事项:
总结:路径错误本质是 URI 解析逻辑误解。优先选用根相对路径 /privacy 实现简洁、健壮、可维护的导航结构;仅在需要跨域或明确指定协议/主机时使用绝对 URL。