- 締切済み
パスについてお願いします!
相対パスについて教えて下さい。 相対パスは、現在地からみて参照先が上の階層なら ../とつけますよね?下なら/のみがつくようなんですが、階層の上とか下とか、その表現がよくわかりません。どうすれば階層を見る(知る)ことができるのでしょうか? 初心者なので説明が足りないかもしれませんが、宜しくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- 9arabi
- ベストアンサー率32% (140/433)
たとえば、以下のようなフォルダの構成があったとします。 [DOC] __[MENU1] ・・・menu1.html __[MENU2] ・・・menu2.html __index.html []でくくってあるのがフォルダの名前です。 さて、index.htmlからみて、menu1.htmlへの相対パスはどうなるのかといいますと まずindex.htmlの現在の位置を考えます。 [DOC]の下にありますね。これを[DOC]をルート(基準位置)としたときの絶対パスを考えると、 /DOC/index.html それから、 同じようにmenu1.htmlについても考えると /DOC/MENU1/menu1.html になります。 DOCフォルダの中のMENU1フォルダの中のmenu1.html という意味ですね。 で、index.htmlからみたmenu1.htmlへの相対パスはというと、 ./MENU1/menu1.html (または MENU1/menu1.html と書く) となります。 この「./」というのは現在位置を表します。 つまり、 さきほどの絶対パスの「/DOC/」の部分(index.htmlが所属する場所なので、「/DOCindex.html」から「index.html」を引いた場所ですね)が現在位置ですから、これを「./」と置き換えてやります。 とすると、 index.htmlから見た、index.html(つまり自分)への相対パスは ./index.html であり index.htmlから見た、menu1.htmlへの相対パスは ./MENU1/menu1.html となります。 同じように、menu1.htmlからindex.htmlを見た場合はどうなるのでしょう? 絶対パスはそれぞれ /DOC/index.html /DOC/MENU1/menu1.html ですね。 今度はmenu1.htmlの現在地をまず考えるのですから現在地は「/DOC/MENU1/」になりますね。 menu1.htmlからmenu1.htmlへの相対パスは ./menu1.html でいいことになります。 が、 「/DOC/MENU1/」というのを「/DOC/index.html」はもっていませんね。 ここで「../」という表記法が出てきます。 menu1.htmlからみて「../」というのは 「/DOC/」になります。 これは、現在地から見て一つ上の階層(つまり、現在地のフォルダを含んでいるフォルダ)を示します、という表記法です。 ../index.html これを読むと「現在地から見て、ひとつ上のフォルダにあるindex.html」「現在地から、一個上に上がって、そこにあるindex.html」というふうになります。 とすると、menu1.htmlからmenu2.htmlをみたとき /DOC/MENU1/menu1.html /DOC/MENU2/menu2.html 日本語で表すと、menu1.htmlのあるMENU1フォルダから一個上に上がって(エクスプローラで、このフォルダの中を見ているときに「上へ」アイコンを押すのと一緒ですね)MENU2フォルダの中をみるんですから 「ひとつ上に上がって、MENU2フォルダの中のmenu2.html」 「ひとつ上に上がって」を「../」で置き換えると ../MENU2/menu2.html 二つ上に上がるときはもちろん「../../」と重ねていきます。 なんだか、最後の方の説明がうまくいきませんでしたが、伝わりましたでしょうか。 ご質問の意図にあっていれば幸いです。
ようするにそれぞれの文書等ファイルがある場所 ディレクトリーがどのディレクトリーの中にあるか? Aディレクトリの中にBディレクトリがあり Bディレクトリの中にCディレクトリがあるなら Bディレクトリの上がAで、下がCです。 あと、正確には 下のディレクトリは/だけではなく./で表現します。 .が現在のディレクトリを意味して 同じディレクトリの文書を指定する場合も ./menu.htmlといった表記をします。 ウェブでは試したことが無いけど、本来は /index.htmlといった表記をすると UNIX系のOSでは、最上位のディレクトリに おかれたindex.htmlを意味します。 (WindowsでいうC:\index.htmlに相当する)
お礼
とてもわかりやすく教えていただき、ありがとうございます。
- cats1234
- ベストアンサー率28% (103/356)
C:\aaa\bbb\ccc\ddd カレントがcccだとします。 aaaはcccから見ると2つ上の階層です。 aaaにある、a.txtを参照する場合は ../../a.txtとなります。 cccにある、c.txtを参照する場合は c.txtとなります。 dddにある、d.txtを参照する場合は ddd/d.txtとなります。 またC:\aaa\eee\e.jpgのようになっている場合 ../../eee/e.jpgのように表現します。
お礼
早いご返答ありがとうございました。 カレントという言葉を初めて知りました…。 勉強を始めたばかりでC:\aaa\bbb\ccc\ddd というものがわかりません。もう少し勉強してみます!
- shisui77
- ベストアンサー率32% (25/76)
エクスプローラの左側のツリー表示部分がそのまま階層です。 全体を見たいなら、ええと、コマンドプロンプトはご存知ですか? XPなら、「スタート」→「プログラム」→「アクセサリ」で見つかると思います。 黒い画面です。 ここで、tree (リターン)と入力しましょう。 これで全体が見れます。 相対とは、今いるフォルダ(カレントフォルダ)から見た位置を指します。 質問者さんが「上」と表現しているのは、左上に位置するフォルダのことです。 「下」は右下のことですね。 AAAA-----BBBB +--CCCC +--DDDD----EEEE +--FFFF を例にすると、 DDDDから見たAAAAは ..になります DDDDから見たBBBBは ../BBBBになります DDDDから見たFFFFは ./FFFFになります ..が親、.が自分です。親子関係をあらわします。 複雑になると../../XXXX もありです。おじいちゃんの位置です。
お礼
ご返答ありがとうございました。 ツリーの見方がわかれば何となく理解できそうです。 shisui77さんは、この階層を確認しながら作業を行っているんですか?このパスを理解できれば、毎回確認しなくとも作業を行えるようになるんでしょうか?
お礼
細かいご説明ありがとうございます。 >「ひとつ上に上がって、MENU2フォルダの中の menu2.html」 「ひとつ上に上がって」を「../」で置き換えると… 言葉に置き換えるとわかりやすいです! 先生ですか?プリントしてじっくり読みたいと思います。