【问题标题】:Website acts like it has a <base> tag, but doesn't have one网站的行为就像它有一个 <base> 标记,但没有
【发布时间】:2014-02-09 03:38:56
【问题描述】:

我正在寻找调试想法,不知道发生了什么。所有没有 URI 方案的 直接 链接(例如,http://)在锚点中都不起作用。因此,假设我在 ./includes/ 目录中的本地主机上工作:

&lt;a href="www.example.com"&gt;Example&lt;a&gt; 带你到127.0.0.1/includes/www.example.com

&lt;a href="http://www.example.com"&gt;Example&lt;a&gt; 带你到www.example.com

使用不同目录中的文件也会失败:

&lt;a href="www.example.com"&gt;Example&lt;a&gt;127.0.0.1/other/directory开始时带你到127.0.0.1/other/directory/www.example.com

这是一个基本的 HTML 编码页面。它是用 PHP 构建的,并且有多个指向 .css 文件和 .js 文件的链接。

我已经确认:

  • 项目文件中的任何位置都没有&lt;base&gt; 标记(netbeans 项目搜索)
  • 任何地方都没有 .htaccess 文件
  • 任何地方都不会进行 mod 重写。
  • 这是我的本地主机 (127.0.0.1) 上的一个项目。但是,其他项目没有同样的问题。
  • 上传到直播服务器时,我没有同样的问题。

在 Chrome 调试器中,URI 看起来是正确的,但是当我单击一个链接(例如 www.example.com)时,它会将页面信息添加到该链接,导致它失败。奇怪的是,即使使用 CTRL-U 查看源代码,当我单击链接时,它也会将我带到相同的错误 URI!

对于 firefox(和 firebug)也是如此。

关于导致错误链接的任何想法?

【问题讨论】:

  • 我看不出问题出在哪里。它正在做它应该做的事情。 http:// 用于完整链接,没有它则用于域的某个子目录或其他页面。
  • 您的示例不是有效的 achor,假定没有本地架构
  • 我很想知道亲近的选民如何回答“这个问题是由无法再复制的问题简单的印刷错误。”
  • 好吧,最近对封闭投票系统所做的更改只是让所有人的情况变得更糟
  • @SableFoste 出于好奇,您是否可以在您的实时网站上提供一个链接到执行此操作的页面?

标签: php html base prepend


【解决方案1】:

您的href 属性值不正确:

<a href="www.example.com">Example<a>

您缺少协议。把http://放在前面:

<a href="http://www.example.com">Example<a>

没有它,浏览器怎么知道你不是想要一个相对于当前文件的文件,名为www.example.com?您必须包含协议。

【讨论】:

  • 也许它这样做是因为浏览器总是更正它,但不是在本地主机上。但是您是说没有 URI 方案(即使在实时站点上)这是不正确的吗?你能指出我的文档吗?
  • ietf.org/rfc/rfc2396.txtw3.org/TR/html401/struct/links.html 和一个小逻辑 www.example.com 是一个有效的文件名,你可以在你的服务器上有一个名为该文件的文件
  • 从技术上讲,如果没有http://,链接总是不正确的,但浏览器已自动添加此功能以提供更友好的用户体验。
  • 如果您打算将它转到该域,则它只是一个不正确的链接。如果您有一个名为 www.example.com 的文件,那将是完全有效的。
  • @SableFoste 无需添加任何东西......达贡和科林在这里一针见血。
猜你喜欢
  • 2020-07-21
  • 2016-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-03
  • 2017-04-17
  • 2016-06-28
  • 2020-11-08
相关资源
最近更新 更多