【问题标题】:A relative url value for href attribute [duplicate]href 属性的相对 url 值
【发布时间】:2025-12-08 23:35:01
【问题描述】:

假设目前我在www.example.com/category1/?page2,我想在html 中放置一个锚标记,它可以将我重定向到www.example.com/category1。我尝试使用href='/',但它会将我带到www.example.com 而不是www.example.com/category1。我也尝试使用href=" ",但它只是刷新当前页面。那么应该如何指定锚标签的href属性呢?

【问题讨论】:

  • href="?" 在功能上是相同的,如果您不介意尾随 ?

标签: html anchor href


【解决方案1】:

编写相对 URL 时应考虑的一件事是使用基本元素。基本元素允许您定义相对 URL 路径的上下文。

关于使用基本元素的信息:Click Here

【讨论】:

    【解决方案2】:

    如果您使用相对 url,它总是相对于*,而不是您所处的任何级别。所以如果你想在www.example.com/category1,使用/category1

    编辑:误解了你的问题。如果您只想从您的 url 中清除 get params,请查看类似的问题,例如 How do I reload the page without the query parameters?(看起来使用 window.pathname 是最干净的解决方案)

    【讨论】:

    • 这不适用于一般情况:www.example.com/some/other/stuff/categoryN?foo
    • 谢谢,伙计。但我想知道的是,是否有某种方式我不需要对相对 url 进行硬编码,它只是在问号后没有任何内容就转到 url?
    • @Noyo 你在说什么?为什么不呢?
    • 正如@chaonextdoor 评论的那样,(s)he(?) 想要一个通用的解决方案,而不必对路径部分进行硬编码。我的解决方案用一点 javascript 解决了这个问题。
    • 啊,是的,这是真的。除了这种情况,这个问题是重复的。
    【解决方案3】:

    您可以使用href="../category1/"

    【讨论】:

      【解决方案4】:

      如前所述,如果您知道路径名并想将其硬编码到标记中,则只需指定相对路径即可:

      <a title="Go to Category 1" href="/category1">Category 1</a>

      否则,如果您想要动态解决方案或不想硬编码路径,您可以使用 javascript 摆脱查询参数并让点击链接进行重定向:

      <a href="#" title="Return to main category page" onclick="window.location.href = window.location.pathname; return false;">Category N</a>

      (有关window.location 及其属性的更多信息,请参阅https://developer.mozilla.org/en-US/docs/DOM/window.location#Properties。)

      【讨论】:

        最近更新 更多