1. ホーム
  2. html

[解決済み] ルートからの相対リンクを持つか?

2022-04-20 04:42:52

質問

ページ上のすべてのリンクをルートディレクトリからの相対リンクにする方法はありますか?

例えば www.example.com/fruits/apples/apple.html というリンクを貼ることができる。

<a href="fruits/index.html">Back to Fruits List</a>

このリンクは、以下の場所を指しているのでしょうか? www.example.com/fruits/apples/fruits/index.html または www.example.com/fruits/index.html ? もし前者なら、代わりに後者を指すようにする方法はありますか?

どのように解決するのですか?

ルート相対URLは / 文字で、次のようになります。 <a href="/directoryInRoot/fileName.html">link text</a> .

貼られたリンク先 <a href="fruits/index.html">Back to Fruits List</a> という名前のディレクトリにある html ファイルにリンクしています。 fruits このディレクトリは、このリンクが表示される html ページと同じディレクトリにあります。

ルート相対URLにするには、次のように変更します。

<a href="/fruits/index.html">Back to Fruits List</a>


編集 という質問に対して、OPからコメントで回答しています。

<ブロッククオート

つまり、/ を実行すると、www.example.com からの相対パスになります。ルートが何であるかを指定する方法はありますか?例えば、www.example.com/fruits/apples/apple.html のルートを www.example.com/fruits にしたい場合はどうすればよいですか?

はい、URLの前にある href または src 属性があり、その中に / は、ルートディレクトリからの相対パスとなります。例えば、以下のようなhtmlページがあった場合 www.example.com/fruits/apples.html の場合、その ahref="/vegetables/carrots.html" は、このページへのリンクとなります。 www.example.com/vegetables/carrots.html .

base タグ 要素では、そのページの base-uri を指定することができます(ただし base タグを追加する必要があります。 のページで、特定のベースを使用する必要がある場合、これについては、単にW3の例を引用することにします。

<ブロッククオート

例えば、次のようなBASE宣言とA宣言があった場合。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
 <HEAD>
   <TITLE>Our Products</TITLE>
   <BASE href="http://www.aviary.com/products/intro.html">
 </HEAD>

 <BODY>
   <P>Have you seen our <A href="../cages/birds.gif">Bird Cages</A>?
 </BODY>
</HTML>

であれば、相対 URI の "../cages/birds.gif" は解決されます。

http://www.aviary.com/cages/birds.gif

引用例:http://www.w3.org/TR/html401/struct/links.html#h-12.4 .

推奨される読み方