2016-12-19 10 views
3

this postによる私の理解は、デフォルトのbase href'/'であるということです。これは厳密には必要であるが、基本的なアプリについてベースが必要ですか?href = '/'?

<!-- ./index.html --> 
<base href="/"> 

、またはブラウザが'/'はとにかく、相対パスのbase hrefであることを前提としています:This scotch tutorialは、このベースHREFを含めるように言いましたか?

答えて

6

ブラウザは、相対パスのベースhrefがとにかくあるとブラウザで仮定しますか?

いいえ、そうではありません。

HTML仕様specifies how relative URLs are resolved。仕様と定義で作業して、ベースURLが< base>要素で指定されていないドキュメントに対して相対URLが解決された場合、有効な(フォールバック)ベースURLは保証されません/となります。いくつかの選択肢がありますが、通常は、ドキュメントのフォールバックベースURLがドキュメントのURLとなります。通常、それは/ではありません。

すべてのドキュメントのベースURLとして/を指定することをお勧めします。これは、表示されるドキュメントに関係なく、すべての相対URLが同じ方法で解決されることを意味します。それはプラスとして取ることができます。一方、バグの原因となる相対URLを解決するためのデフォルトの動作とは異なります。確かに、あなたがそれを行うことを選択した場合は、アプリケーション全体で一貫して行う必要があります。

1

ベースは、ページがある場所です。すべての相対URLは、baseに相対的です。

<a href="../d">abc</a> 

次にリンクをクリックすることにより、target

http://a/d 

次のようになります。あなたはこのコードを使用してこのページ内のリンクを持っている場合は、私たちは、あなたが

http://a/b/c 

であると仮定してみようだから、あなたのbaseは、

http://a/b 
です。

cがその中にあるためです。 baseが何であるか理解したので、hereをご覧ください。 hrefのほかに、targetを設定して、リンクを開く場所を指定することもできます。

関連する問題