this postによる私の理解は、デフォルトのbase href
が'/'
であるということです。これは厳密には必要であるが、基本的なアプリについてベースが必要ですか?href = '/'?
<!-- ./index.html -->
<base href="/">
、またはブラウザが'/'
はとにかく、相対パスのbase href
であることを前提としています:This scotch tutorialは、このベースHREFを含めるように言いましたか?
this postによる私の理解は、デフォルトのbase href
が'/'
であるということです。これは厳密には必要であるが、基本的なアプリについてベースが必要ですか?href = '/'?
<!-- ./index.html -->
<base href="/">
、またはブラウザが'/'
はとにかく、相対パスのbase href
であることを前提としています:This scotch tutorialは、このベースHREFを含めるように言いましたか?
ブラウザは、相対パスのベースhrefがとにかくあるとブラウザで仮定しますか?
いいえ、そうではありません。
HTML仕様specifies how relative URLs are resolved。仕様と定義で作業して、ベースURLが< base>要素で指定されていないドキュメントに対して相対URLが解決された場合、有効な(フォールバック)ベースURLは保証されません/
となります。いくつかの選択肢がありますが、通常は、ドキュメントのフォールバックベースURLがドキュメントのURLとなります。通常、それは/
ではありません。
すべてのドキュメントのベースURLとして/
を指定することをお勧めします。これは、表示されるドキュメントに関係なく、すべての相対URLが同じ方法で解決されることを意味します。それはプラスとして取ることができます。一方、バグの原因となる相対URLを解決するためのデフォルトの動作とは異なります。確かに、あなたがそれを行うことを選択した場合は、アプリケーション全体で一貫して行う必要があります。
ベースは、ページがある場所です。すべての相対URLは、base
に相対的です。
<a href="../d">abc</a>
次にリンクをクリックすることにより、target
は
http://a/d
次のようになります。あなたはこのコードを使用してこのページ内のリンクを持っている場合は、私たちは、あなたが
http://a/b/c
であると仮定してみようだから、あなたのbase
は、
http://a/b
です。
c
がその中にあるためです。 base
が何であるか理解したので、hereをご覧ください。 href
のほかに、target
を設定して、リンクを開く場所を指定することもできます。