80

でウェブサイトを作成していlocalhostます。Web サイトのすべてのリンク リソースを相対パス (内部リソースのみを意味します) にリンクしたいと考えています。

ウェブサイトはにあります

http://localhost/mywebsite

この便利な質問Absolute vs relative URLsを読みました。

との違いを見つけまし/images/example.pngimages/example.png

<a href="/images/example.png"> Link To Image</a>

URLの最初にあるROOT_DOCUMENT/images/example.pngため、上記の相対パスが返されるはずです。/のようROOT_DOCUMENTなものです/wamp/www/mywebsite

しかし、私がそれをテストしたとき、それは返されるだけです/wamp/www/images/example.png

また、Web サイト フォルダー/mywebsite/images/example.pngを手動で相対パスに追加する必要があります。

<a href="mywebsite/images/example.png"> Link To Image</a>

また、mywebsite の名前を変更したため、役に立ちません。そう:

  • なぜこの問題が発生するのですか?
  • この問題を解決するにはどうすればよいですか?
4

3 に答える 3

132

あなたはあなたのウェブサイトが にhttp://localhost/mywebsiteあると言い、あなたの画像が という名前のサブフォルダー内にあるとしましょうpictures/:

絶対パス

絶対パスを使用する場合は、ドキュメントのルートではなく、サイトルート/を指します。そのため、写真フォルダーにアクセスするには、ドキュメントのフォルダーを指定する必要があります。localhost

"/mywebsite/pictures/picture.png"

そして、それは次のようになります:

"http://localhost/mywebsite/pictures/picture.png"

相対パス

相対パスは常にドキュメントルートからの相対パスであるため、html がディレクトリの同じレベルにある場合は、画像のディレクトリ名を使用して直接パスを開始する必要があります。

"pictures/picture.png"

ただし、相対パスを使用した他の特典があります。

ドットスラッシュ ( ./)

ドット( .) は同じディレクトリを指し、スラッシュ( /)はそのディレクトリへのアクセスを提供します。

したがって、この:

"pictures/picture.png"

これと同じになります:

"./pictures/picture.png"

ダブルドットスラッシュ ( ../)

この場合、ダブル ドット ( ) は上位ディレクトリ..を指し、同様に、スラッシュ ( ) はそのディレクトリへのアクセスを提供します。したがって、現在のドキュメント ディレクトリの 1 レベル上のディレクトリにある画像にアクセスする場合、URL は次のようになります。/

"../picture.png"

好きなだけそれらをいじることができます。小さな例は次のとおりです。

あなたが directory にいて、 directoryAにアクセスしたいとしましょうX

- root
   |- a
      |- A
   |- b
   |- x
      |- X

URL は次のいずれかになります。

絶対パス

"/x/X/picture.png"

または:

相対パス

"./../x/X/picture.png"
于 2014-06-04T04:04:59.917 に答える
3

相対パスは、クライアント側のドキュメント レベル、つまりブラウザに表示されるドキュメントの URL レベルに基づいています。

Web サイトの URL が次の場合:http://www.example.com/mywebsite/ルート レベルから開始すると、"mywebsite" フォルダー パスの上で開始されます。

于 2014-06-04T03:41:27.113 に答える