网站就像它有一个<base />标签,但没有一个

时间:2014-02-09 03:38:56

标签: php html base prepend

我正在寻找调试思路,不确定发生了什么。没有URI方案的所有直接链接(例如,http://)在锚中不起作用。假设我正在./includes/目录中的localhost上工作:

<a href="www.example.com">Example<a>将您带到127.0.0.1/includes/www.example.com

尽管

<a href="http://www.example.com">Example<a>将您带到www.example.com

使用其他目录中的文件也会失败:

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

开始时,

127.0.0.1/other/directory/www.example.com会将您带到127.0.0.1/other/directory

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

我已确认:

  • 项目文件中没有<base>标记(netbeans项目搜索)
  • 没有.htaccess文件
  • 在任何地方都没有改编。
  • 这是我的localhost(127.0.0.1)上的一个项目。但是,其他项目没有相同的问题。
  • 上传到实时服务器时,我没有遇到同样的问题。

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

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

有关导致错误链接的原因的任何想法?

1 个答案:

答案 0 :(得分:5)

您的href属性值不正确:

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

你错过了协议。将http://放在前面:

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

没有它,浏览器如何知道你没有打算相对于当前文件名为www.example.com的文件?您必须包含协议。