Chrome & Edge 中的基本相对网址



示例目录和文件:

parent/
├── images/
│   ├── cat.jpg
│   └── dog.jpg
└── demo.html

我在演示文件的base标签中使用了一个相对URL:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Demo - Mori79</title>
<link rel="icon" href="/favicon.ico">
<base href="images/">
</head>
<body>
<img src="cat.jpg" alt="Cat">
<img src="dog.jpg" alt="Dog">
</body>
</html>

而且它工作起来没有问题。但是如果你在Chrome&Edge,这是base相对URL指向的目的地:https://mori79.github.io/images/images/

屏幕截图

这在Firefox中是不同的&Safari:https://mori79.github.io/images/

虽然链接文本是相同的,但它指向不同浏览器中的不同目的地。

这是一个真正的演示

是我的编码错误吗?或者它是Chrome中的一个bug&边或者可能在火狐&Safari?

这只是一个"bug";在dev工具中,它显然是在根据当前document.baseURI的值重新分析相对url。

其他一切都很好。你不需要担心这个:

console.log(document.baseURI, document.querySelector("base").href)
// logs correctly https://stacksnippets.net/foo/ twice
<base href="foo/">

如果你真的想,你可以在https://crbug.com但说实话,这太微不足道了,我怀疑这是否值得你花时间。

最新更新