网站的行为就像它有一个 <base> 标记,但没有
Posted
技术标签:
【中文标题】网站的行为就像它有一个 <base> 标记,但没有【英文标题】:Website acts like it has a <base> tag, but doesn't have one 【发布时间】:2014-02-09 03:38:56 【问题描述】:我正在寻找调试想法,不知道发生了什么。所有没有 URI 方案的 直接 链接(例如,http://
)在锚点中都不起作用。因此,假设我在 ./includes/
目录中的本地主机上工作:
<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
开始时带你到127.0.0.1/other/directory/www.example.com
这是一个基本的 html 编码页面。它是用 php 构建的,并且有多个指向 .css
文件和 .js
文件的链接。
我已经确认:
项目文件中的任何位置都没有<base>
标记(netbeans 项目搜索)
任何地方都没有 .htaccess 文件
任何地方都不会进行 mod 重写。
这是我的本地主机 (127.0.0.1) 上的一个项目。但是,其他项目没有同样的问题。
上传到直播服务器时,我没有同样的问题。
在 Chrome 调试器中,URI 看起来是正确的,但是当我单击一个链接(例如 www.example.com)时,它会将页面信息添加到该链接,导致它失败。奇怪的是,即使使用 CTRL-U 查看源代码,当我单击链接时,它也会将我带到相同的错误 URI!
对于 firefox(和 firebug)也是如此。
关于导致错误链接的任何想法?
【问题讨论】:
我看不出问题出在哪里。它正在做它应该做的事情。http://
用于完整链接,没有它则用于域的某个子目录或其他页面。
您的示例不是有效的 achor,假定没有本地架构
我很想知道亲近的选民如何回答“这个问题是由无法再复制的问题或简单的印刷错误。”
好吧,最近对封闭投票系统所做的更改只是让所有人的情况变得更糟
@SableFoste 出于好奇,您是否可以在您的实时网站上提供一个链接到执行此操作的页面?
【参考方案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.txt 和 w3.org/TR/html401/struct/links.html 和一个小逻辑www.example.com
是一个有效的文件名,你可以在你的服务器上有一个名为该文件的文件
从技术上讲,如果没有http://
,链接总是不正确的,但浏览器已自动添加此功能以提供更友好的用户体验。
如果您打算将它转到该域,则它只是一个不正确的链接。如果您有一个名为 www.example.com
的文件,那将是完全有效的。
@SableFoste 无需添加任何东西......达贡和科林在这里一针见血。以上是关于网站的行为就像它有一个 <base> 标记,但没有的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 SQL Server 列看起来没有默认值,即使它的行为就像它一样?
Chrome 版本 28.0.1500.71 m 损坏的 css(就像它没有完全加载一样)
GNU Parallel:如何从gnu并行管道接收stdin,就像它来自文件一样?