買い物かご 掲示板 メール DB 利用規定 FAQ サポートBBS


次(設定時の基礎知識)
前(SSI)
最初に知るべきこと
CGIことはじめ
CGI設置ノウハウ
Basic Top
Make CGI

Home



相対パスと絶対パス --CGIことはじめ--

■パスとは

パスとは、「道筋」を意味する英語です。
コンピュータの世界では、ある特定のファイル(基点となるファイル)から、別のファイルへの道筋を表しています。

上の図は、あるサイト(「にゃんこ」「わんこ」「たぬこ」の写真集)の構成図をエクスプローラで表示したものです。

■さて、ここで問題です。

HTMLフォルダ内にある「index.html」に「image」フォルダ内の「nyanko_photo」フォルダの中にある「nyan1.jpg」を表示させるためのタグは<img src="XXXXXX">である。この「XXXX」を答えよ!

答えは・・

image/nyanko_photo/nyan1.jpg

これが、基点となる「index.html」から見た「nyan1.jpg」へのパス(道筋)となります。

■ではもう一つ・・・

「nyanko」フォルダ内の「nyanko.html」から「wanko」フォルダ内の「wanko.html」へリンクを貼るためのタグは、<a href="XXXXXXXX">である。この「XXXX」を答えよ!

答えは・・・

../wanko/wanko.html

これが、基点となる「nyanko.html」から見た「wanko.html」へのパスとなります。

このように、ある特定のファイルから、別のファイルへの道筋のことを「パス」といいます。

■さぁ、最後の問題です。得点は3倍!

残ったスーパー○クンをかけた○東さん!あなたにもトップ賞のチャンスがありますよ!

「wanko」フォルダ内の「wanko.html」から、「cgi-bin」フォルダ内の「bbs」フォルダの中の「bbs.cgi」へリンクを貼るためのタグは<a href="XXXXXXXX">である。この「XXXX」を答えよ!

解答はコマーシャルの後・・・・


相対パス

「・・・技術の○立です・・・」コマーシャルが終わりました。

さぁ、解答が出揃いました!フムフムみなさん、それらしい解答が出ております。

では正解は・・・!

../../cgi-bin/bbs/bbs.cgi

あぁ、残念でした○東さん!能書きは完璧だったんですがねぇ〜〜
正解は○柳さんただ一人!

というわけで、今週のパーフェクトは、○柳さん!おめでとうございます。

上の問題で答えたパス、これが実は相対パスなんですねぇ〜〜〜
へぇ〜〜〜(ほんとにわかってるんか?マコトクン)


というわけで・・・まともな説明を・・・^^;

パスとは、先にも述べたように、基点となるファイルから、別のファイルへの道筋のことです。例えば「index.html」から「nyan1.jpg」へのパスは・・

「image」フォルダに入る -> image/
「nyanko_photo」フォルダに入る-> image/nyanko_photo/
「nyan1.jpg」を指定する-> image/nyanko_photo/nyan1.jpg

このように、基点となるファイルから見た特定のファイルまでの間にフォルダがある場合、フォルダ名とフォルダ名あるいは、フォルダ名とファイル名を区切るため「/スラッシュ」が使われます。

では、基点となるファイルよりも上(外)にあるファイルを指定するときはどうするのでしょうか?

「wanko」フォルダ内の「wanko.html」から、「cgi-bin」フォルダ内の「bbs」フォルダの中の「bbs.cgi」へパスは・・・

「wanko」フォルダから出る -> ../
「html」フォルダから出る -> ../../
「cgi-bin」フォルダへ入る -> ../../cgi-bin/
「bbs」フォルダへ入る -> ../../cgi-bin/bbs/
「bbs.cgi」を指定する -> ../../cgi-bin/bbs/bbs.cgi

「wanko」フォルダ内の「wanko.html」から「index.html」を指定する場合は、「wanko」フォルダから出るだけなので、

「wanko」フォルダから出る -> ../
「index.html」を指定する ->../index.html

となります。

このように、基点となるファイルから見た特定のファイルの位置が外にある場合は、フォルダの数だけ「../」が付きます。

ちなみに、Windowsでは「/」の代わりに「\」が使われますね。

なお、CGIスクリプトの初期設定で、基点となるファイルよりも下のディレクトリを指定するときは、
image/nyanko_photo/nyan1.jpg ではなく、
./image/nyanko_photo/nyan1.jpg
のように、頭に「./」を付けないと動かないことがあります。

相対パスは、自分のサイト内でのみ使用できます。
他人のサイトを指定する場合は、絶対パスを使います。


■絶対パス

相対パスが、自分のサイト内のファイルを指定するために使われるのに対し、絶対パスは、他のユーザーのホームページを指定したり、自分のサイトでも、サーバーが異なる場合に使われます。

もし、あなたのホームページに、Web寺子屋へのリンクを貼るなら、

http://azumi.coco.co.jp/
のように、「http://」から始まるURLのフルパスを記述します。
これが絶対パスです。

絶対パスには、もう一つの意味があります。

CGIスクリプトの1行目に記述されている、
/usr/local/bin/perl
とか、
/usr/lib/sendmail
のように、パスの先頭が「/」で始まっている場合です。

これは、同じ絶対パスでも、あなたのホームページの入っているサーバーコンピュータ内の特定のファイルへのパスを意味しています。これらのファイルは、あなたを含めたすべてのユーザーで共有して使用しているプログラムへのパスとなります。

WindowsならC:\usr\lib\sendmailとなるでしょうか?

二つ目の絶対パスについて説明すると長くなりますので、ここでは割愛します。


Web寺子屋 OGIPOGI E-mail:info@web-terakoya.net
Copyright© 2000-2001 OGIPOGI All Rights Reserved.