为什么`replaceState`删除`/ basehref / index.html`中的`index.html`

时间:2017-11-01 14:50:54

标签: javascript html5 browser-history pushstate

我将/is/设置为基本href以及使用index.html的{​​{1}}中的以下简单代码:

replaceState()

执行代码之前的URL如下所示:

<base href="/is/">
<script>
    setTimeout(()=>{
        history.replaceState(null, "", "#/some");
    }, 2000);
</script>

但是,一旦执行代码,http://localhost:8080/index.html 就会消失,URL看起来像这样:

index.html

我希望它看起来像这样:

http://localhost:8080/is/#/some

http://localhost:8080/is/index.html#/some 为什么会消失?

1 个答案:

答案 0 :(得分:2)

<base>标记用于建立文档基本URL。这可作为历史API等API中所有相对URL的参考点。这就是<base>的全部观点。

&#34;当前&#34; URL被称为&#34;后备基本URL&#34;在W3C规范中,只有在没有<base>标记且具有指定href值的情况下才会发挥作用。

所以答案基本上就是事情的运作方式。