我有一个HTML文件,其字母索引包含"内部" (相对)链接,指的是文档本身。现在每个字母都包含指向外部(绝对)链接的链接。总共有大约5,500个这样的链接,并且为每个链接添加相同的基本href是非常愚蠢的。这是一个经典案例,人们会使用基础href。但是,使用基本href会取消内部引用。
是否可以保留内部链接并使用" base href"对于外部的,因为它们都属于同一个基址?
示例:
<a href="#A">A</a> | <a href="#B">B</a> | ...
<a name="A"></a>
<li><a href="https://stackoverflow.com/questions/37158674">37158674</a></li>
<li><a href="https://stackoverflow.com/questions/37158675">37158675</a></li>
...
这里的基础href当然是&#34; https://stackoverflow.com/questions/&#34;
答案 0 :(得分:2)
base
元素指定相对URL的基本URL,保持绝对URL不变。它并不关心相对URL是相对于您的网站还是其他网站,并且它并不关心您的绝对网址所指向的位置。但是,它会将所有映射到页面上的相对URL,包括图像,样式表,脚本和其他资源。
话虽如此,如果所有内部超链接都是用绝对URL编写的(并且所有外部超链接都是用相对的URL编写的,那么你可以使它适用于外部超链接而不是内部超链接的唯一方法)。您不需要JavaScript - 您只需要小心确保您的内部链接都使用绝对URL,这样它们就无法相对于stackoverflow.com解析。这包括指向命名锚点的链接。如果你想要保存近200千字节的未压缩标记(对于5,500个链接),如果你问我的话,这是一个公平的权衡!
示例:
<base href="https://stackoverflow.com/questions">
<a href="https://example.com/questions.html#A">A</a> |
<a href="https://example.com/questions.html#B">B</a> | ...
<a name="A"></a>
<ol>
<li><a href="37158674">37158674</a></li>
<li><a href="37158675">37158675</a></li>
...
答案 1 :(得分:1)
这是一个针对此问题的JavaScript解决方案,除非您使用JavaScript或某些模板语言,否则不可能仅使用HTML
0b0000000000000000gggggggg
>>
答案 2 :(得分:0)
您可以使用PHP创建链接,如:
<?php
function stackLink($num){
echo "<a href='https://stackoverflow.com/questions/$num'>$num</a>";
}
?>
<li><?php stackLink(37158674); ?></li>
<li><?php stackLink(37158675); ?></li>