※このドキュメントは長くは残りませんので、必要であればハードディスクに保存してください。


パスについてのあれこれ


■パスとは?

"C:\WINDOWS\デスクトップ\aska\HP\好きなこと.html"

のように、ファイルのある場所を示す一列を、「パス」と言います。PassじゃなくてPathです。
直訳すれば「道・進路・経路」で、いわゆるファイルのある場所です。ファイルの住所、とも言えますね。

ご存知と思いますが、\/はフォルダごとの区切りを表します。Windowsではどちらも使えますが、Webでは/だけです。

さて、パスには「絶対パス」「相対パス」という難しい名前の2種類がありますが、どっちを使ってもパソコンが自動で見分けてくれますから、人間様は正しいパスを書くことだけに集中します。


■絶対パス(フルパス)

「絶対ここにあるパス」と解釈します。住所で言うなら「日本国○○県△△市××町1-2-3」で、世界中のどこにいても、必ず目的地へ行けますよね。つまり、「ここにしかない」わけです。
主に二通りの呼ばれ方がありますが、インターネットでは絶対パス、自分のパソコンの中ではフルパスと区別されることが多いです。これは習慣的なものでしょう。

絶対パスをぶっちゃけて言えば、

  1. インターネット上のホームページの場合、http:で始まる。
  2. 自分のパソコンの中では、C:\D:\のように始まる。(これはWindowsの場合)

…です。

そして、ホームページではC:\の形を使うことはありませんhttp:で始まるか、下記の「相対パス」を使うか、二択です。(「webのurl」とは、このふたつのことを指します)
面倒くさければ「絶対パスは他のホームページにリンクを張る時だけ使う」と憶えておきましょう。

この説明はかなり不完全です。「絶対パス=http:で始まる」ではありません。
他にもhttps: ftp: file: mailto: news: gopher: nntp: telnet: wais: prospero:ついでにsstp:などなど、阿呆みたいにあります。前者4つは見る機会も多いですが、これらは望まない限り知る必要もないでしょう。
さらにjavascript: livescript: mocha: view-source: about: montulli:なんていうのもあります。
そして、「xxxx:で始まる=絶対パス」でもないです。(これらには「スキーム」という名前が付いてます)

■相対パス

「今いる場所から見たパス」で、自分のホームページ内にリンクを張る時は、通常こちらを使います。これ、あまりに簡単すぎて、逆にうまく説明できないんですよね。
初めのうちはたしかに少しややこしいですが、感覚でなんとかなっちゃうものなので、一回わかれば実にあっけないです。難しく考えるほどハマります。

その仕組みを説明するには通常「道案内」のたとえを使うのですが、ここは結果優先で行きましょう。

相対パスの作り方

index.htmlからlike.htmlへ(相対パスで)リンクを張りたい」

大基本:
相対パスは「../フォルダ名/ファイル名」の3つの部品を順番に組み合わせて作る。
部品がなかったり複数あったりはしても、順番が入れ替わることはない。

まず、index.htmlがあるフォルダをエクスプローラで開きます。

同じフォルダにlike.htmlが一緒に入ってれば、今いる場所から動いてないので、そのまま

<A href="like.html">like.htmlへリンク</A>

と、ファイル名を書くだけで終わりです。スクリプトの場合もたいして変わらず、

path[0] = "like.html";

です。もちろんスクリプトの場合は通用しないこともありますが、サンプルとして公開されているものは、こんな感じで指定できるようにしてあるはずです。
あっけないですね。
つまり、全部のファイルをひとつのフォルダにまとめちゃうのが、一番簡単な方法です。

どこか別のフォルダにlike.htmlがある時は、まず、紙と鉛筆を用意します。
そしてエクスプローラを操作して、そのフォルダまで行ってみてください。ただし、左側にあるフォルダツリーを使って横着しちゃダメです。
この時、

  1. 「上へ」ボタンを押した(ひとつ上に上がった)なら、押した回数だけ../と書きます。3つ上がったら../../../になります。
    ボタンを押さなかった時は、なにも書きません。
  2. どこかのフォルダに入ったなら、そのフォルダの名前を 1. の後ろに足して、さらに/(スラッシュ)を足します。
    documentフォルダに入ったなら、document/と書きます。さらにprofileフォルダに入ったなら、document/profile/となります。
    どこのフォルダにも入らなかった時は、なにも書きません。
  3. like.htmlのあるフォルダに辿り着いたら、ファイル名を 2. の最後に足します。これは必ず書かないといけません。(特例を除く)

これで「index.htmlからlike.htmlへの相対パス」ができます。
3つ上に上がってdocumentフォルダ →profileフォルダに入ったなら、

../../../document/profile/like.html

となってるはずです。これが、いわばlike.htmlまでの地図です。
あとは

<A href="../../../profile/like.html">like.htmlへリンク</A>
path[0] = "../../../profile/like.html";

で相対パスリンクの完成。
パソコンはこの通りに辿れば、like.htmlまで行くことができますね。


■絶対パスのまとめ

絶対パスとは「ファイルの住所」です。ただし、インターネットと自分のパソコンは「別の惑星」というレベルで違うので、自分のパソコンでのパス(C:\の形式)は、インターネットでは無意味です。

メリット

インターネットの絶対パスは、インターネットのどこにいようと、必ずそこへ行けます。
自分のパソコンの絶対パス(フルパス)は、どこのフォルダ・ドライブにいようが、必ずそこに行けます。Windowsで言う「ショートカット」が、この形式です。
葉書に住所を書いたら、それが合ってる限り、必ず届きますよね。

デメリット

パスが一文字でも変わったり、あるいは間違えたりすると、リンクが切れてしまいます。
宛て先で福島県を福岡県と間違えたら、全然別のとこに行っちゃいますよね。

これは相対パスにもあるデメリット…というか、あたり前ですね。


■相対パスのまとめ

相対パスとは「index.html(のあるフォルダ)からlike.htmlへの行き方を書いた地図」です。「目的地までの地図」ではないので、他のフォルダにあるファイルからは、また違うものになります。

メリット

地図に書いてある行き方が変わらない限り、リンクが切れないことです。
自分の住んでる町の名前が変わったら、他の町からの郵便は届かなくなるけど、近所の友達の家へは同じ地図で行けますよね。

具体的には、自分のパソコンでもサーバーでも、たとえホームページを引っ越しても、リンクが切れません。もしリンクが全部絶対パスだったら、引っ越ししたら全滅することになります。だから普通は相対パスを使うわけです。

デメリット

地図がちょっと変わっただけでリンクが切れます。
友達の家が引っ越したら、行っても本人はいませんし、自分が引っ越したら、友達の家への行き方も変わります。
つまり、地図が役に立たなくなりますよね。

要するに「フォルダ名やファイル名などの構成をみだりに変えちゃダメ」ということです。
また、ドメインhttp://www.xxx.yy.jp/までの部分)が違うと、相対パスは使えません。他の人のホームページへリンクを張るのは、必ず絶対パスを使います。


■おまけ〜もうひとつのパス形式

実は、パスにはもう一種類あります。絶対パスと相対パスを併せたような意味をもち、使いようによっては結構便利ですが、使ってる人はほとんど見ません。
余裕があったらついでに憶えておくと、得することもあるでしょう。

<A href="/~piroaki/index.html">トップのindex.htmlへ</A>

先頭に/が付いてるのが、この形式。意味は「ルートからの絶対パス」です。ルートとは、「一番上のフォルダ」です。一番上のフォルダとは、「ドメイン名の直下」です。
アドレスバーを見ると「http://www.globetown.net/~piroaki/exc/020520/」となってますよね。太字になってるとこがドメイン名です。
つまりホームページを引っ越しても、変わったのがドメイン名だけならリンク全滅の憂き目に遭いません。

しかし一般市民はドメイン名の後に~piroakiみたいなユーザーネームが付くので、いまいち使い勝手は良くないです。自分ドメインだったらかなり使えるんですけどね。

また、自分のパソコンでも同じです。自分のパソコンではドライブが「一番上のフォルダ」ですから、C:\とかD:\からの絶対パスとなります。
上記の例ではC:\~piroaki\index.htmlへのリンクになります。(C:\は今いるドライブによって変わります)


■さらにおまけ

<A href="./index.html">今いるフォルダのindex.htmlへ</A>

先頭に付いてる./は「今いるフォルダ」を表しますが、付けなくても同じなので、無理して使う必要はありません。


■おわりに

基本はなんといっても相対パスです。どうしてもわかんなければ、全部のファイルをひとつのフォルダにまとめてしまう方法がいいかも。(ただし、サイトが成長するに従ってフォルダの中身がすごいことになって、管理が非常に面倒くさくなります)

相対パスの知識は、HP作成ソフトを使っていても必要になりますから、この機会にぜひ憶えておきましょう!


2002.5.20.Mon
ぴろあき
- Mail