【问题标题】:Links of "href=http://localhost/~~~" in HTML code at server cannot be reached from client客户端无法访问服务器 HTML 代码中的“href=http://localhost/~~~”链接
【发布时间】:2017-12-21 01:48:00
【问题描述】:

我是 HTML 世界的新手。

我在服务器上创建了一个 "example.html" 网页,
其中包含以下 a 标签 链接。

...
<nav>
    <ol>
        <li><a href="http://localhost/link1.html">link1</a></li>
        <li><a href="http://localhost/link2.html">link2</a></li>
        <li><a href="http://localhost/link3.html">link3</a></li>
    </ol>
</nav>
...

如果我在服务器的网络浏览器上打开这个"http://localhost/example.html" 页面并单击链接(链接1~链接3),它们就可以工作。

问题是它们不能在客户端的网络浏览器上工作。

我端口转发了我的服务器计算机并从客户端打开了"example.html"
通过"http://myaddress.com:1234/example.html"

暂时,我通过更改解决了它
服务器代码中的每个链接,"http://localhost/~~~.html"
"http://myaddress.com:1234/~~~.html"

但是,我想让客户端访问写为"http://localhost/~~~.html"的服务器代码中的每个链接

是端口转发的问题吗?还是别的什么?

非常感谢。

【问题讨论】:

  • 浏览器不知道你的本地主机如果它在远程机器上。 DNS 解析不是这样工作的。

标签: html localhost href


【解决方案1】:

这应该可以解决问题,您的 href 中不需要 localhost。从你的锚标签中删除它们。

<nav>
    <ol>
        <li><a href="/link1.html">link1</a></li>
        <li><a href="/link2.html">link2</a></li>
        <li><a href="/link3.html">link3</a></li>
    </ol>
</nav>

尝试将端口附加到 localhost href?客户端必须在本地运行它才能工作。

<nav>
    <ol>
        <li><a href="http://localhost:1234/link1.html">link1</a></li>
        <li><a href="http://localhost:1234/link2.html">link2</a></li>
        <li><a href="http://localhost:1234/link3.html">link3</a></li>
    </ol>
</nav>

【讨论】:

  • 谢谢。欣赏它
【解决方案2】:

始终使用相对路径,而不是绝对路径:

<nav>
    <ol>
        <li><a href="link1.html">link1</a></li>
        <li><a href="link2.html">link2</a></li>
        <li><a href="link3.html">link3</a></li>
    </ol>
</nav>

顾名思义,localhost 指向本地机器。因此,当您包含它以形成绝对 URL 时,它总是在本地计算机上查找这些文件。由于这些文件存在于服务器上,因此它们可以在服务器的浏览器中运行,但是当您在任何其他计算机上运行它时,它们会失败,因为该文件不存在于该其他计算机上。

【讨论】:

    猜你喜欢
    • 2020-06-26
    • 2013-12-27
    • 2021-01-25
    • 1970-01-01
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    相关资源
    最近更新 更多