相対パス、絶対パスってなに?

HPを作るときには、HTMLファイルに画像や音楽ファイルを貼り付けたり、ほかのHTMLファイルにリンクを貼ったりする、というのは前回までの話でわかりましたよね。このファイルを貼り付けたりリンクを貼ったりする際に、今回お話します「相対パス」と「絶対パス」を使うのです。ちなみに「パス」という単語はファイルやフォルダの住所を指す言葉です。

さて、聞いたことなくてなにやら難しそうな単語だと思っている方。ご安心ください。すでに半分は勉強済みなんですよ。

実は「絶対パス」というのは、インターネット上でのファイルやフォルダの住所を指す言葉です。どこかで聞いたことあるフレーズですが覚えていますか?

そうです、「URLってなに?」でまったく同じ説明をしましたよね。もうお分かりだと思いますが、インターネットの世界ではURL=絶対パスなのです。インターネット全体で見て、そのファイルがどこにあるのかを指し示す絶対的な住所が「絶対パス」というわけです。

次に「相対パス」ですが、こちらの方が考え方は簡単です。相対パスとは、あるファイル(A)から別のファイル(B)のパスを指定する際に、ファイルAから見てファイルBはどこにあるか、を示す方法なのです。

言葉にすると難しく感じますので、ゆっくり図を交えながら説明しましょう。

例えば、あるHTMLファイル(A)から別のHTMLファイル(B)にリンクを貼りたいとします。そして、その二つのHTMLファイルが同じフォルダの中にあったとして下さい(下図参照)。

img1

もちろんリンクの指定をURL(絶対パス)「http://www.7key.jp/hp/b.html」で行うこともできますが、相対パスを使えばもっと簡単に指定することができるのです。指定するファイルが同じフォルダにある場合は

./b.html

のようにファイルを指定することができます。

書式は「.(ピリオド)/(スラッシュ)ファイル名」となっており、もちろん全て半角文字で記述します。この「./」は同じ場所を示す一種の記号のようなものです。同じフォルダの中にあるファイルは「同じ場所にある」ということですね。

ずいぶんと簡単に記述できますので使わない手はないです。しっかりマスターしましょう。

これを応用すれば、フォルダの中に指定したいファイルがある場合も、相対パスを使って指定することができます。

次のようなファイルとフォルダの構成の場合を考えてみましょう。「a.html」と「sample」というフォルダが同じ場所にあり、「sample」フォルダの中に「b.html」がある場合に、「a.html」から「b.html」にリンクを貼りたいとしましょう(下図参照)。少し考えてみて下さい。今までの知識で十分答えは出せますよ。

img2

まず、「sample」フォルダは「a.html」と同じ場所にあるので、「a.html」から見た「sample」フォルダの中は次のように表せます。

./sample/

そして、「sample」フォルダの中にある「b.html」にリンクを貼りたいので、答えは

./sample/b.html

となります。

更にその中にフォルダがあってまた更にその中にフォルダがあっても考え方は同じです。自分と同じ場所よりしたに指定したいファイルがある場合はこの方法で十分対応ができると思います。

では、リンクを指定しようとしているファイルが自分よりうえにあった場合はどうでしょう。イメージとしては下図のとおりです。

img3

先ほどの例と逆のパターンですね。このような場合には次のように指定をします。

../b.html

「.(ピリオド).(ピリオド)/(スラッシュ)」で、今自分がいるフォルダより一つ上のフォルダを指す記号となっています。二つ上のフォルダを指そうと思えば「../../」になりますし、三つ上であろうが四つ上であろうが考え方は同じです。

ただ注意点として、「相対パス」で指定できるのは、あなたに与えられたWEBサーバ上でのフォルダの中だけです。つまり、自分が与えられているフォルダより上のフォルダは指定できないのが一般的です。

以上で「相対パス」の話は終わりですが、今回は念のため練習問題を用意しました。理解に不安がある人はチャレンジしてみて下さい。

次のようなフォルダ構造でファイルが配置されているとします。

img4

  1. BからCにリンク
  2. BからAにリンク
  3. AからBにリンク
  4. DからAにリンク
  5. DからCにリンク
  6. EからAにリンク
  7. EからCにリンク

答えは問題の上にマウスを重ねれば表示されます(JavaScriptをオンにして下さい)。

インターネットの世界では
インターネットではなく、あなたのパソコンの中でも相対パスと絶対パスというものがあります。 例えば、「c:\windows\piyo.exe」と言うようにドライブ名から始まるパスのことを、ローカルでの絶対パスと言います。 相対パスはインターネットの場合と同じですのであわてず読み進めていって下さい。
した
相対パスを表す際に、よく「うえ」とか「した」と表現されます。 自分を基準に見て、フォルダ階層が深ければ「した」フォルダ階層が浅ければ「うえ」ということですね。
回答
./C.html
回答
../../A.html
回答
./1/2/B.html
回答
../../A.html
回答
../2/C.html
回答
../../../A.html
回答
../../2/C.html
ファイルやフォルダの住所を指す言葉
正確には「外部記憶装置内でのファイルやフォルダを指す言葉」となります。即ち、コンピュータ内でファイルやフォルダの位置を示す言葉が「パス」と言うわけです。ということはここで説明している「絶対パス」って何?となりますが、はい、仰られる通り「絶対パス=URL」なんて方式は大きな誤りです。ただ、URLの意味で絶対パスという言葉が使われる事が多いのでこのページではこのような説明を行っています。余裕のある方は「本当は嘘」ってことも併せて覚えておくと良いでしょう。