181

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

たとえば、www.example.com/fruits/apples/apple.html次のようなリンクがあります。

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

このリンクはまたはを指しているのでしょうwww.example.com/fruits/apples/fruits/index.htmlwww.example.com/fruits/index.html?最初の場合、代わりに2番目を指すようにする方法はありますか?

4

7 に答える 7

326

ルート相対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/のwww.example.com/fruitsにする場合はどうなりますか。 apples / apple.html?

はい、hrefまたはsrc属性でURLの前にaを付ける/と、ルートディレクトリを基準にしたパスが作成されます。たとえば、のhtmlページを指定するwww.example.com/fruits/apples.htmlと、aofhref="/vegetables/carrots.html"はそのページにリンクしますwww.example.com/vegetables/carrots.html

basetag要素を使用すると、そのページのbase-uriを指定できます(ただし、特定のbaseを使用するために必要なすべての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

推奨読書:

于 2011-04-05T23:04:10.243 に答える
21

使用する

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

また

<a href="../index.html">Back to Fruits List</a>
于 2011-04-05T23:04:07.783 に答える
5

ASP.NETアプリケーションサーバー側からURLを作成し、WebサイトをWebサイトの仮想ディレクトリ(例:app2)、つまり http://www.yourwebsite.com/app2/に展開する場合

次に挿入するだけ

<base href="~/" />

タイトルタグの直後。

したがって、ルート相対を使用するときはいつでも

<a href="/Accounts/Login"/> 

「 http://www.yourwebsite.com/app2/Accounts/Login」に解決されます

このようにして、いつでもファイルを比較的(絶対に)指すことができます;)

私にとって、これは最も柔軟なソリューションです。

于 2014-10-10T07:05:00.787 に答える
3
<a href="/fruits/index.html">Back to Fruits List</a>
于 2011-04-05T23:04:30.543 に答える
1

images/ルート内のディレクトリを次のように配置する画像タグへのURLを指定するには

`logo.png`

次のようにsrcURLを指定する必要があります。/

<img src="/images/logo.png"/>

branches/europe/about.phpこのコードは、ロゴがすぐそこに表示されている場合でも、問題なくどのディレクトリでも機能します。

于 2017-01-12T11:13:07.227 に答える
0

相対パスの概要( href、srcなどに適用可能):

/file_Or_FolderName          Root directory
./file_Or_FolderName         Current directory
../file_Or_FolderName        Previous directory (One level up)
../../file_Or_FolderName     Previous of previous directory (Two levels up)
../../../file_Or_FolderName  Just like above - Three levels up 

例:

www.example.com
    ├── apple.html
    └── FolderA
        ├── fileA.html
        └── FolderB
            ├── fileB.html
            └── FolderC
                ├── fileC.html
                └── FolderD       <------ Suppose you're here (current directory)
                    ├── fileD.html
                    └── FolderE
                        └── fileE.html

以下に、相対パス(href、srcなどに適用可能)を使用してさまざまなレベルでファイルにアクセスする方法を示します。

fileD.html                 - same level access(or)
./fileD.html               - same level
./FolderE/fileE.html       - 1 level Down
../fileC.html              - 1 level Up
../../fileB.html           - 2 levels Up
../../../fileA.html        - 3 levels Up
../../../../apple.html     - 4 levels Up (or)
/apple.html                - 4 levels Up but direcly using root /
于 2021-07-29T16:05:54.103 に答える
-2

このコード「./」をサーバーのルートとして使用してください。

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

ただし、ローカルマシンを使用している場合は、ルート相対パスとして次のコード「../」を使用します

<a href="../fruits/index.html">Back to Fruits List</a>
于 2017-08-29T19:24:23.670 に答える