我从未见过
在任何地方实际使用过<base>
HTML标记。使用它有陷阱吗,这意味着我应该避免使用它?
我从来没有注意到它在现代生产站点(或任何站点)上使用过的事实,使我对此感到不安,尽管它似乎具有简化我站点上链接的有用应用程序。
在使用基本标签几周后,我确实发现使用基本标签会引起一些重大麻烦,这使它比最初出现的效果要差得多。从本质上讲,变化href='#topic'
和href=''
基本标签下是_非常_有它们的默认行为不兼容,并可以从默认行为,这种变化很容易使第三方库的控制之外 非常不可靠
因为它们在逻辑上将取决于默认行为,因此它们以意想不到的方式运行。所做的更改通常很细微,在处理大型代码库时会导致不那么明显的问题。此后,我创建了一个答案,详细说明了我在下面遇到的问题。因此,在您承诺广泛部署之前,请先亲自测试链接结果<base>
,这是我的新建议!
基本标记似乎有一些非直觉的影响,我建议您在了解结果之前,先对结果进行测试并亲自进行测试<base>
!由于我是 在
尝试使用base标签处理具有不同url的本地站点 后 发现它们的 ,
并且仅在发现令人讨厌的影响之后,令我感到沮丧的是,我感到不得不为其他人创建这些潜在陷阱的摘要。
除非明确说明,否则没有链接,命名的锚点或空白的href指向原始子目录:基本标记使 所有 链接都不同,包括指向基本标记url的同一页锚点链接,例如:
<a href='#top-of-page' title="Some title">A link to the top of the page via a named anchor</a>
变成
<a href='http://www.example.com/other-subdirectory/#top-of-page' title="Some title">A link to an #named-anchor on the completely different base page</a>
<a href='?update=1' title="Some title">A link to this page</a>
变成
<a href='http://www.example.com/other-subdirectory/?update=1' title="Some title">A link to the base tag's page instead</a>
通过一些工作,您可以通过明确指定这些链接链接到它们所在的页面来解决您可以控制的链接上的这些问题,但是当您向第三方库添加依赖于标准行为的第三方库时,它很容易造成大混乱。
要求有条件的意见IE6补丁:需要有条件的评论对IE6避免搞砸了DOM的层次结构,即<base href="http://www.example.com/"><!--[if lte IE 6]></base><![endif]-->
如BalusC
在他的回答中提到以上。
因此,总的来说,除非您对每个链接都拥有完全的编辑控制权,否则主要问题就变得棘手了,而且正如我最初担心的那样,这使麻烦变得比其价值更大。现在,我必须开始重写它的所有用法!:p
Izzy编辑: 对于你们所有人,我都对我的评论感到困惑:
我刚刚对自己进行了测试,结果如下:
#anchor
和?query
将简单地被附加到指定的<BASE>
)。other.html
并dir/other.html
从DOCUMENT_ROOT
给定示例开始于,/other-subdirectory
被(正确地)视为文件,因此被省略。因此,对于相对链接,BASE
可以在移动的页面上正常工作-
同时定位并?queries
需要明确指定文件名(带有BASE
斜杠,或者最后一个元素与其所使用的文件名不符)。
可以将其视为<BASE>
替换 文件本身 (而 不是 文件 所在目录)的 完整URL,
这样您就可以正确处理。假设此示例中使用的文件是other-subdirectory/test.html
(移至新位置后), 则正确的规范应为:
<base href="http://www.example.com/other-subdirectory/test.html
“>
-等瞧, 一切都 按预期工作:#anchor
,?query
,other.html
,very/other.html
,/completely/other.html
。
问题内容: 我从未见过 在任何地方实际使用过HTML标记。使用它是否存在陷阱,这意味着我应该避免使用它? 我从来没有注意到它在现代生产站点(或任何站点)上使用过的事实,这使我对此持反对态度,尽管似乎它可能具有用于简化我的站点上的链接的有用应用程序。 编辑 在使用基本标签几周之后,我确实发现使用基本标签会引起一些重大麻烦,这使它比最初出现的要难得多。从本质上讲,变化href=’#topic’和hre
我有一个很长的switch语句代码(大约8个案例),它决定了在浏览器中使用什么搜索来查找元素。有没有关于如何重构这段代码的建议? WebElement CurrentObject=null;切换(SearchBy){case“className”:尝试{CurrentObject=new WebDriverWait(driver,ConstantValues.LONGWAIT)。直到(Expect
总的来说,问题是做什么?
问题内容: 。 对CSS缩小器有什么建议吗? 我将扎根Google并尝试一些方法,但我怀疑聪明,精通和好奇的英俊StackOverflow社区可能已经评估了重量级的优缺点。 问题答案: 在锐压缩机是太棒了。它适用于JavaScript和CSS。一探究竟。
问题内容: 最近三年,我一直在用PHP进行Web应用程序开发。我现在快要尝试Java。我最近一次使用该语言是在8年前,而且大部分是学术性的。 我对PHP的对象模型(版本5)相当熟悉,并且我几乎完全是在OO中进行编码的。我现在想传达这种经验并将其用于Java开发。 我来自哪里: linux作为桌面和服务器 Vim / gVim +插件作为编辑器 MySQL的数据库 apache httpd 一堆PH
问题内容: 我正在做一个基于滚动2D地图/平铺的游戏。每个图块(存储为tile [21] [11]-每个地图总共231个图块)最多可以包含21个值(存储为int [3] [7])。在全屏模式下,我一次可以看到8张地图。 平均而言,每张地图的绘制时间约为0.03秒(可通过System.nanoTime找到)。问题在于,一旦在屏幕上显示多于一张地图,Swing事件轮询就会明显变慢。 有什么解决办法吗?