【问题标题】:Why does my anchor link redirect to the same page?为什么我的锚链接重定向到同一页面?
【发布时间】:2023-02-10 05:56:55
【问题描述】:

我在使用主 html 中的链接并为与主 html 位于同一根目录中的链接提供另一个 html 文件名时遇到问题。 不幸的是,点击链接后,地址栏发生了变化,但页面没有加载,它重定向到主 html 页面。 这是我写链接的方式:

<a href="./PU.html">click</a>

这是我的文件夹结构:

我也尝试提供完整路径,但出现此错误:

不允许加载本地资源:file:///C:/my_project/templates/PU.html

【问题讨论】:

  • 欢迎来到堆栈溢出!如果PU.html 与您的主/索引文件位于同一文件夹/目录中,则您不需要./。另外,您的文件是在服务器上,还是在本地计算机上工作?
  • 此行为是由于您的 HTTP 服务器将您重定向回 / 或为每个 URL 提供相同的文件。我们可以告诉您正在使用 HTTP 服务器,否则您不会收到从 HTTP 切换到 FILE 的错误消息。由于您没有告诉我们有关您的 HTTP 服务器的任何信息,因此如果没有更多信息,我们将无能为力。如果您没有足够快地编辑它以包含足够的信息以供人们提供帮助,则预计该问题将被关闭。 (一旦您的编辑进入,它可以稍后重新打开)。
  • 是的,你是对的,我在我的电脑上本地工作
  • 正如昆汀所说,您应该编辑您的问题以提供更多信息。你的文件夹结构是什么样的?我在你的完整路径中看到了 my_project/templates,但是你的 index.html 与 PU.html 的关系在哪里?
  • 服务器本身的详细信息可能更重要(他说,希望这是“我在 Node.js 中编写自己的 HTTP 服务器,它不注意请求中的路径”问题的另一个副本)。

标签: html


【解决方案1】:

正如您在 cmets 中所说,我假设您是在本地计算机上工作,所以我将相应地回答。

首先要知道的是,您的主要的,即您希望用户首先看到的文件应命名为index.html它应该在您项目的根目录中,即根据您的问题,它应该在my_project 中。

现在,如果像我说的那样,那么您的my_project 文件夹/目录将被视为目录。有了这个考虑,现在你可以设置链接相对于该目录。例如:

<a href="/templates/PU.html">click</a>

/在开头,这里告诉 HTML 从根目录查找,即在您的情况下从 my_project 查找。


我没有看到你的代码有任何错误。不过,我会在这里告诉你一些事情。 **./**开头关联告诉 HTML 查看与当前文件位于同一文件夹中的文件。所以,如果 PU.html 文件不在同一个文件夹对于您正在处理的文件,它会出错,因为正如我所说,它正在同一文件夹中查找文件。

【讨论】:

  • 感谢您的回答,当我设置与根相关的链接时,找不到页面,但我认为问题应该是 HTTP 服务器总是将我重定向到根 /
【解决方案2】:

我有同样的问题,我正在使用 apache 服务器。

`<a href="https://ntechservices.xyz/about">About</a>`

我的 .htaccess 看起来像这样: 重写引擎开启

RewriteCond %{THE_REQUEST} /([^.]+).html [NC] 重写规则 ^ /%1 [NC,L,R]

RewriteCond %{REQUEST_FILENAME}.html -f 重写规则 ^ %{REQUEST_URI}.html [NC,L]

标头集 X-Frame-Options DENY

错误文档 404 /404.html

【讨论】:

    【解决方案3】:

    你的语法没有错。

    &lt;a href="./PU.html"&gt;click&lt;/a&gt;正确的, 但是如果你的文件在同一个目录中,你就不需要./.

    【讨论】:

    • “是正确的”——它可能是正确的,但它不起作用。
    • “如果您的文件位于同一目录中,则不需要 ./。” — 虽然是真的,但删除它不会有什么不同。
    • 当你有一点名声时,you can comment on any question or answer 但你不应该使用“发布答案”功能来说一些并不能同时真正解决问题的事情。
    • 无关文件不是问题,并且以前的答案可以更好地回答有关路径(相对和绝对)的问题。如果您不清楚这些条款,请查看w3schools.com/html/html_filepaths.asp
    猜你喜欢
    • 1970-01-01
    • 2012-08-26
    • 2017-11-02
    • 1970-01-01
    • 2019-11-06
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    相关资源
    最近更新 更多