ホーム»サイト管理»絶対パスと相対パス、そしてURI(URL)?

絶対パスと相対パス、そしてURI(URL)?

公開日: 2008年12月23日 (火) 18:42  – 更新日: 2009年07月18日 (土) 23:21

webページ作り始めた最初に覚えるリンクについてさえ、うろ覚えで対処してるんだなーと、以下を書きながら痛感しました。整理するにあたって出来るだけ 調べながら書いたけれど、詳しい人が見れば曲解している部分が多々あるに違いない。
例えとして、絶対パスは住所→“Aさんの家は「東京都千代田区○○1-1-1」”で相対パスは道順→“Aさんの家は「ここを右に曲がって突き当たりを左に行ったところ」”という秀逸なものがありますけど、絶対相対それ以前にもうパスってのが文脈の中で何を示しているのかが判らなくなってくるんですわ。

パスとURIは違う

パスはコンピュータ内でのディレクトリ(フォルダ)の場所。
URIは識別するための文字列(HTTPに限っては、リソースの場所を指定するURLと、ほぼ同じと考えて良いようです)。URIの中に、パスも使われているんだな。

パスという言葉は、状況によって融通無碍に使用される傾向があるので、調べ物をしててスゲー混乱します。
HTMLのリンクの張り方・画像指定の仕方や、CGI等のプログラム・スクリプト解説サイトですら、ごっちゃに説明している事がありますので、適宜読み替える事が出来る様にてきとーに纏めてみます。

絶対なんちゃら

“絶対パスが~”等と言及された場合、次のような3つのケースが有り得ます

  • 絶対URI。完全URI。“http://からのURL指定”。ほーむぺーじ講座類で絶対パスと云われている多くは、コレを指しています。
    http://www.exsmple.com/
    http://www.exsmple.com/index.html
    http://www.exsmple.com/banner/ban01.jpg
  • htmlで使う絶対パス相対URI。公開領域のルート(ドキュメントルート)を示す“/”から始まって、以降の道筋を全て記述しています。
    /
    /index.html
    /banner/ban01.jpg
  • (perlやphpなど)スクリプト等で使う絶対パス。フルパス。サーバパス。非公開領域にあるサーバのルートディレクトリから始まって、以降の道筋を全て記述しています。
    /home/(userID)/public_html/
    /home/(userID)/public_html/index.html
    /home/(userID)/public_html/banner/ban01.jpg
    非公開領域にあるファイルを指定することも可能です。
    /home/(userID)/private/include.php

2種類の絶対パス(基点が違う)は、何れもスラッシュ“/”から始まります。
絶対パスは、コンピュータ(サーバ)内で他と重複しない住所を記述したもの。故に、同一サーバ内なら何処からアクセスしても同一の場所が参照されます。
上記3つの絶対なんちゃらの内、外部サイト…というか他のサーバを参照できるのは、絶対URIだけです。

公開領域/非公開領域について書くと長くなるので、取り合えず放っておく。

絶対のまとめ

何か話が通じない・錯綜している……と思った時に、相手が何を伝えたいのか、状況から推察する方法。

  • 「絶対パスで(他のサイトに)リンクする」と言われたら、それは絶対URIの事を示していると了解すれば良い。
  • 同じサイト内のリンクだったら、それだけでは(絶対URIかインターネット上の絶対パス)どちらか判断付かない。
    プログラムやスクリプトが絡まないなら、サーバ上の絶対パスは、まず使わないので除外できる。
  • 「サーバ管理者に問い合わせて下さい」等と書き添えられていたら、それはサーバ上の絶対パスと思って良い。
  • インターネット上の絶対パスが話題に出る頻度は、然程多くない(気がする…)。

相対なんちゃら

アクセスする場所から見た、目的の場所への経路が相対URI・相対パスです。
2つの場所を繋ぐ道筋なのですから、別の場所からアクセスするには別の経路が必要となります(大概は)。
htmlで用いる 場合、通常はスタート地点の絶対URIを基準URIとして、目的の場所を参照します。通常じゃない処理をするのは“ここを基準にするぞ”と、わざわざ指定してある場合。

“相対パスが~”等と言及された場合、次のような2つのケースが有り得ます

  • htmlで使う絶対パス相対URI。呼び名に困っている事が多いです。
    /
    /index.html
    /banner/ban01.jpg
  • 相対URI相対パス。ほーむぺーじ講座等で相対パスと云われているのは、ほぼ確実に、この相対URIです(絶対URIと補完の関係)。
    • index.htmlから見た、index.htmlとban01.jpgへの相対URI又は相対パス。
      ./
      ./index.html
      index.html
      banner/ban01.jpg
      ban01.jpgから見た、index.htmlとban01.jpgへの相対URI又は相対パス。
      ../
      ../index.html
      ./banner/ban01.jpg
      banner/ban01.jpg

“./”は現在のディレクトリ(カレントディレクトリ)を意味します。尚、“./”は省略できます。“../”は1つ上のディレクトリ。“../../”と書けば2つ上のディレクトリになります。
こんな具合に登ったり降りたりして目的の場所まで辿り着きます。

お知らせ

2010/03/27

素材依頼受付期間は、2010/04/01~2010/06/30です。
本業が多忙の為、申し訳ありませんが、それ以降の受付は休止致します。再開時期は未定ですが、生活が安定したら復活するつもりはあります。気長に生温くお待ちください。
(依頼ではないもやっとしたご要望については、随時承っております。どのページからでも拍手で適当に送れますし、私も適当に対処します)

Terms of Use written in Japanese.