HTMLベースタグでhrefのドメイン名を省略できますか?


8

現在私のウェブサイトでは、HTMLベースタグを使用してアンカータグのURLを短縮しています。私のサイトのすべてのURLは1つのドメインに属しています。100%コンプライアンスのため、絶対URLを使用します。例えば:

<base href="http://www.example.com/path/to/specialpage/">

私はインターネットでこれをどうにかして短縮できるかどうかを調べ、過去10年以内に発明されたブラウザでも動作するかどうかを確認しました。私は次のようなことをしたかった:

<base href="/path/to/specialpage/">

私の質問は、上記のコードを使用した場合、Internet Explorerなどの主要なブラウザーが機能しなくなるのでしょうか。または主要なブラウザにこのタグの短縮によるバグがありますか?ドメイン名を省略したいのですが、特定のブラウザー用の特別なタグを含めることを意味する場合でも、過去10年間に作成されたすべてのブラウザーでサイトを引き続き機能させる必要があります。

<!-- firefoxpatchID=1 -->
<base href="/path/to/specialpage/">
<!-- endfirefoxpatch -->

ここでの解決策は何ですか?ドメインを省略すればいいのですが、すべてのブラウザで満足できるでしょうか、それとも特定のブラウザに特別なことをしなければ、自分のアイデアに対応できないのでしょうか。

回答:


6

いいえ。hrefは絶対URIを指す必要があります。相対要素は基本要素では許可されていません。

この属性は、相対URIを解決するためのベースURIとして機能する絶対URIを指定します。

HTML5標準では、のhref属性を参照して次のように述べています<base>

DocumentオブジェクトのドキュメントベースURLは絶対URLです


1
これは、「ドキュメント全体で相対URLアドレスに使用されるベースURL ...絶対URIと相対URIが許可されている」という絶対的なものである必要はありません。
スティーブンオスターミラー

相対URIを指定できるようになったことは、HTML5の変更のように思われます。HTML 4.01の仕様では、これは絶対的なURIである必要があると明記されています。「10年前の」古いブラウザをサポートしたい場合、これはOPの懸念になるかもしれません。
MrWhite 2016

@StephenOstermillerでは、代わりに、hrefに「ドキュメントURL」が含まれている必要があり、ドキュメントURLが「絶対URL」として定義されていることを示す標準を見てみましょう。HTML 4.01と比較して、w3dkで指摘されているように、今のところ違いがあるとしたら、私にはわかりませんし、気にする必要もありません。
Rob

1
もう少しドキュメントを読む必要があると思います... "DocumentオブジェクトのドキュメントベースURLは、次のサブステップを実行して取得した絶対URL です " ... "ドキュメントベースURLは、最初のフリーズベースURLです"href属性を持つDocumentの基本要素"。残念ながら、WhatWGドキュメントはそれ以上説明していないようです(少なくとも、「凍結されたベースURL」の内部リンクにはエンドポイントがありません)。
MrWhite 2016

1
しかし、w3.orgの仕様はさらに説明しています:「凍結されたベースURLを設定するには、ドキュメントのフォールバックベースURLに対して要素のhrefコンテンツ属性の値を解決します。これが成功した場合、凍結されたベースURLを結果の絶対URLに設定します。URL」。「ドキュメントのフォールバックベースURL」は、基本的に現在のドキュメントの絶対URLです。少々複雑ですが、BASE要素で相対 URLを使用できるようになったと思います。次に、対応する絶対URLがこれから解決されます。
MrWhite 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.