2017-11-01 20 views
0

で `index.html`を除去なぜベースHREFとreplaceState()を使用index.htmlに次の簡単なコードとして/is/設定した:`replaceState`が`/basehref/index.html`

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

コードはindex.htmlがなくなって実行されると、しかし

http://localhost:8080/index.html 

をし、URLは次のようになります:実行されるコードの前にURLは次のようになります

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

私はそれがこのように見えるように予想:

http://localhost:8080/is/index.html#/some 

はなぜindex.htmlが消えましたか?

答えて

2

<base>タグは、ドキュメントのベースURLを確立します。これは、History APIのようなAPIのすべての相対URLの参照ポイントとして機能します。それは一種のもので、<base>の全体的な点です。

「現在の」URLは、W3C仕様では「フォールバックベースURL」と呼ばれ、タグが指定されていない場合にのみ表示されます(href値)。

答えは、基本的にはそれが動作する方法です。

+0

[こちらはW3Cのリンクです](https://www.w3.org/TR/2011/WD-html5-20110113/urls.html#document-base-url) – Pointy

+0

ありがとうございます原因は 'replaceState'ではなく' base href'ですか? –

+0

さて、文書に ''タグを入れて、ブラウザが望んだと思うようにします。奇妙なことに、何年ものWebプログラミングで ''タグを使ったことはありません。 – Pointy

関連する問題