WWWの基礎の基礎

絶対パスと相対パスについて

コンピュータ上のファイルの場所を示す方法は絶対パス相対パスがあります。絶対パスとは目的ファイルまでの道筋を全て記述するもので、相対パスは現在位置から目的のファイルまでの道筋を記述するものです。極端に言うと、「○○へはどう行ったらいいですか?」と尋ねられたときに、「その場所の住所」を答えるのが絶対パスでの答え方で、「その角を左に曲がって、その先の十字路を右に・・・」という答え方が相対パスでの答え方になります。

絶対パスと相対パスにはどちらも長所と短所があります。

絶対パス
どこからでもアドレスが変わらない
パスが長いため記述するのが面倒
指定の仕方によってはオフラインでのサイト確認が出来ない
サイトの場所が変わった時に変更が大変
相対パス
サイトが変わってもフォルダ構成が同じならソースを変更する必要がない
自分のコンピュータとサーバーのフォルダ構成を同じにしておけばオフラインで動作確認が出来る(404エラーを出す心配が減る)
パスが短くシンプル
同じファイルを指定しても、どこから指定するかによってパスが変わる

インターネットでの絶対パスの書き方

インターネット上での絶対パスはブラウザのアドレスバーに書かれている文字列をそのまま記述すれば良い。例えば、「Yahoo! JAPAN」の場合は「http://www.yahoo.co.jp」、「Google」の日本語版の場合は「http://www.google.co.jp」になる。

実際は、もう少し複雑なので、ある程度理解が進んだら「ドキュメントルート」のことなどを調べて下さい。

インターネットでの相対パスの書き方

相対パスの書き方は少し注意が必要になる。説明にファイル名を使用するので下記のフォルダ構成を参照して下さい。「file1.html」からの相対パスを見ていきます。

同じフォルダにある「file2.html」を指定する場合
「file2.html」
「./file2.html」
上記はいずれも同じフォルダの「file2.html」というファイルを指定している。「./」は現在のフォルダを表している。
同じフォルダにある「folder2」の中にある「file3.html」を指定する場合
「folder2/file3.html」
「./folder2/file3.html」
1つ上のフォルダにある「index.html」を指定する場合
「../index.html」
「./../index.html」
「./」が現在のフォルダを指すので「../」が1つ上のフォルダになる。「./../」は「../」で1つ上のフォルダ、「./」で現在のフォルダなので結果的に1つ上のフォルダを指す。
1つ上のフォルダにある「folder3」の中にある「file4.html」を指定する場合
「../folder3/file4.html」
「./../folder3/file4.html」

フォルダ構成にはありませんが「../../」で2つ上のフォルダを指します。当然、「./../../」も同様に2つ上のフォルダです。3つ上の場合は「../../../」です。

フォルダ構成
public_html(ルート)
 │
 ├index.html
 │
 ├folder1(フォルダ)
 ││
 │├file1.html(編集中のファイル)
 ││
 │├file2.html
 ││
 │└folder2(フォルダ)
 │ │
 │ └file3.html
 │
 └folder3(フォルダ)
  │
  └file4.html

今回は分かり易いように「フォルダ」という表現を使いましたが、インターネット上では「同じディレクトリ」や「1つ上のディレクトリ」など「フォルダ」ではなく「ディレクトリ」という表現を用います。

注意
しっかりと調べて書いているわけではないので、所々に嘘がある可能性があります。興味を持たれた方は自分で調べてみて下さい。
本文は、2005年1月24日現在のものです。