[小西ホームページ]   [目次・索引]   [前の授業]   [次の授業]

コンピュータIIE(HTML入門)第9回

目次 索引
9.1 ファイルとディレクトリ
9.1.1 階層的ディレクトリ
9.1.2 パス名
9.1.3 特別なディレクトリ名
9.2 URL
9.2.1 URLとは
9.2.2 絶対URL
9.2.3 相対URL
9.2.4 baseタグ
9.2.5 階層的なホームページ
9.3 演習9
9.4 レポート課題
baseタグ  URI  URL  階層的ディレクトリ  カレントディレクトリ  基準URL  絶対URL  絶対パス名  相対URL  相対パス名  パス名  ホームディレクトリ  ルートディレクトリ 

9.1 ファイルとディレクトリ

9.1.1 階層的ディレクトリ

ディレクトリを用いますとファイルの分類ができますが、ディレクトリには、ファイルだけでなくディレクトリも登録できます。 (ファイルとディレクトリを混在させることもできますし、ファイルもディレクトリもない空の状態にもできます。) ディレクトリに(他の)ディレクトリが登録できる機能を、 階層的ディレクトリhierarchical directory )とよびます。 階層的ディレクトリによって、ファイルだけでなく、ディレクトリも分類できます。 つまり、ファイルを分類してディレクトリに登録し、それらのディレクトリを分類してより上位のディレクトリに登録し、さらにそれらのディレクトリを分類してさらに上位のディレクトリに登録し、…ということができるのです。

階層的ディレクトリでは、 ルートディレクトリroot directory )とよばれる特別なディレクトリが用意されます。 すべてのファイルはルートディレクトリに登録されているか、ルートディレクトリに登録されているディレクトリに登録されているか、ルートディレクトリに登録されているディレクトリに登録されているディレクトリに登録されているか、…のいずれかです。

階層的ディレクトリは、木の構造としてとらえると分かりやすくなります。 以下は、木の構造として描かれた階層的ディレクトリの例です。 木の根(図の一番上)がルートディレクトリに対応します。 ルートディレクトリにディレクトリ Users や tmp が登録され、…、ディレクトリ comp2e にファイル ex8.html と ex8.html~ が登録されていることを表しています。

                       |
                 +-----+-----+---..
                 |           |
               Users        tmp
                 |           :
           +-----+-----+---..
           |           |
        b04a001     b04a002
           |           :
     +-----+-----+-----------+-----------+
     |           |           |           |
   Mail       Maildir      WABI      WWW-local
     :           :           :           |
           +-----------+-----------+-----+-----+
           |           |           |           |
      index.html  index.html~   comp2e      photo.jpg
                                   |
                             +-----+-----+
                             |           |
                         ex8.html    ex8.html~

9.1.2 パス名

パス名pathname )とは、階層的ディレクトリにあるファイルやディレクトリを参照する名前です。 パス名には絶対パス名と相対パス名があります。 ファイルの 絶対パス名absolute pathname )とは、記号 / から始まり、階層的ディレクトリを表す木の根から順にたどり、そのファイルに至るまでのディレクトリ名とファイル名を、記号 / で区切って書き並べたものです。 ディレクトリの絶対パス名も同様に、記号 / から始まり、木の根からそのディレクトリに至るまでのディレクトリ名を、記号 / で区切って書き並べたものです。 なお、ルートディレクトリは単に / です。

例えば、図の最も下のファイル ex8.html の絶対パス名は

/Users/b04a001/WWW-local/comp2e/ex8.html

です。 また、下から2段目のファイル index.html の絶対パス名は

/Users/b04a001/WWW-local/index.html

です。 ディレクトリ comp2e の絶対パス名は

/Users/b04a001/WWW-local/comp2e

です。

絶対パス名を用いますと、階層的ディレクトリにあるファイルやディレクトリが確実に参照できます。 しかし、いちいち木の根からディレクトリ名を書き並べるのは大変です。 ファイルの 相対パス名relative pathname )とは、木の根からではなく、カレントディレクトリから順にたどり、そのファイルに至るまでのディレクトリ名とファイル名を、記号 / で区切って書き並べたものです。 ここで カレントディレクトリcurrent directory )とは、その時の操作の基準となるディレクトリです。 ディレクトリの相対パス名も同様に、カレントディレクトリから順にたどり、そのディレクトリに至るまでのディレクトリ名を、記号 / で区切って書き並べたものです。 先頭に記号 / がつかないことに注意してください。

           :
           |
        b04a001
           |
     +-----+-----+-----------+-----------+
     |           |           |           |
   Mail       Maildir      WABI      WWW-local
     :           :           :           |
           +-----------+-----------+-----+-----+
           |           |           |           |
      index.html  index.html~    comp2e     photo.jpg
                                   |
                             +-----+-----+
                             |           |
                         ex8.html    ex8.html~

例えば、カレントディレクトリが WWW-local であるとき、ファイル ex8.html の相対パス名は comp2e/ex8.html です。 カレントディレクトリが comp2e のときは、単に ex8.html となります。 カレントディレクトリが b04a001 であるとき、ディレクトリ comp2e の相対パス名は WWW-local/comp2e です。 カレントディレクトリが WWW-local のときは、単に comp2e となります。

9.1.3 特別なディレクトリ名

相対パス名が、カレントディレクトリの下にあるファイルやディレクトリしか参照できないように思えますが、特別なディレクトリ名 .. を使えば、カレントディレクトリの上にあるものも参照できます。 ディレクトリ名 .. は、一つ上のディレクトリを意味します。 例えば、カレントディレクトリが comp2e であるとき、ファイル photo.jpg の相対パス名は ../photo.jpg ですし、ディレクトリ b04a001 の相対パス名は ../.. です。

.. の他にも特別なディレクトリ名があります。 以下の表を見てください。 ここで、 ホームディレクトリhome directory )とは、ユーザ(システムの利用者)の個人的な利用のために割り当てられているディレクトリです。 情報処理センターでは、例えば学生番号b04a001のユーザに対しては、ディレクトリ

/Users/b04a001

を割り当てています。 ユーザがログインしますと、ホームディレクトリが最初のカレントディレクトリになります。

表 9.1  特別なディレクトリ名
名前 意味
. カレントディレクトリ
.. 一つ上のディレクトリ
~ 自分のホームディレクトリ
~user ユーザuserのホームディレクトリ

9.2 URL

9.2.1 URLとは

URL (Uniform Resource Locator)とは、主にインターネットで利用できる情報サービスの、アクセス方式や設置箇所を表す文字列です。 例えば、検索エンジン「ヤフー・ジャパン」を利用するときは、Safariの「場所:」入力欄に

http://www.yahoo.co.jp/

と入力して、ヤフーのホームページを表示します。 この文字列がURLの一例です。

URLは、Safariの「場所:」入力欄に入力する他に、HTMLドキュメントに書いて、リンク先を指定したり、イメージファイルの所在を示したりするのに使われます。 具体的には、次の部分です。 これまでファイル名を書いていたところです。

イメージ(タグ)
<img src=" URL ">
アンカー(タグ)
<a href=" URL "></a>
背景イメージ(タグ)
<body background=" URL "></body>
背景イメージ(プロパティ)
background-image: url( URL )
初期フレーム(タグ)
<frame src=" URL ">
スタイルシート・ファイル(タグ)
<link href=" URL ">

もしかしたら、URIという用語を聞いたことがあるかもしれません。 URI (Uniform Resource Identifier)は、URLの拡張概念です。 この授業では、両者の差を意識する必要はありませんので、URLをURIと読み替えてもかまいません。

URLには、 絶対URLabsolute URL )と 相対URLrelative URL )があります。 絶対URLは、情報サービスのアクセス方式や設置箇所を完全に指定します。 一方、相対URLは、それらを部分的に指定します。 相対URLが書かれたところには、基準となる絶対URLがあり、基準のURLと相対URLの両者から完全な指定がなされます。

9.2.2 絶対URL

絶対URLの書式は次の通りです。

scheme : scheme-specific-part

ここで、 scheme はアクセス方式を表す文字列です。 アクセス方式のうち重要なものは次の通りです。

scheme-specific-part はアクセス方式によって様々です。

file方式の場合は、file:(正式にはfile://)に続けてファイルの絶対パス名を書いて、ローカルファイルを指定します。 例えば、パス名が

/Users/b04a001/schedule.html

であるファイルを作成した場合、Safariの「場所:」入力欄に

file:/Users/b04a001/schedule.html

と入力しますと、そのファイルの内容が表示されます。 準備中のホームページや公開しないホームページは、この方法で開くとよいでしょう。

mailto方式の場合は、mailto:に続けてメールアドレスを書きます。 例えば、メールアドレスがb04a001@twcu.ac.jpである場合、HTMLドキュメントに

...
<a href="mailto:b04a001@twcu.ac.jp">
メールはこちらまで</a>
...

と書きますと、ブラウザは「メールはこちらまで」の部分を始点アンカーとして表示します。 そして、もしそのブラウザにメール送信機能があれば、その部分をクリックしますとメール送信用のウィンドウが開きます。

http方式の場合、URLの書式は次のようになります。 (もう少し複雑な形もあります。)

http:// host path

ここで、 host はWWWサーバのコンピュータの名前、 path はファイルの絶対パス名です。 ただし、ファイルの絶対パス名と言っても、WWWサーバのコンピュータにおける絶対パス名とは少し異なります。 例えば、Safariの「場所:」入力欄に

http://www.twcu.ac.jp/cis/index.html

と入力しますと、情報処理センターのホームページが表示されます。 このURLは、コンピュータwww.twcu.ac.jpで稼働しているWWWサーバを指定しています。 しかし、指定しているファイルは、/cis/index.htmlではありません。

WWWサーバは、すべてのファイルを公開するのではなく、あるディレクトリ(ドキュメントルートとよばれます)を定め、その下の部分のみを公開するようにしています。 そして、http方式で絶対パス名が指定されたときには、ドキュメントルートの下になるように絶対パス名が構成されます。 仮に、このWWWサーバのドキュメントルートが/var/lib/httpd/htdocsと設定されているとします。 すると、このURLはファイル

/var/lib/httpd/htdocs/cis/index.html

を指定していることになります。

この授業の演習で、例えば

/Users/b04a001/WWW-local/comp2e/ex1.html

にHTMLファイルを作成したとき、Safariの「場所:」入力欄に

http://www-local.twcu.ac.jp/~b04a001/comp2e/ex1.html

と入力してもホームページが表示できました。 ここでも同様の仕組みが働いています。

WWWサーバは、各々のユーザに対しても、ホームディレクトリの下のすべての部分を公開するのではなく、ユーザごとにドキュメントルートを定め、その下の部分のみを公開するようにしています。 そして、URL

http:// host /~ user / path

が指定されたときには、ドキュメントルートの下になるように絶対パス名が構成されます。 コンピュータwww-local.twcu.ac.jpのWWWサーバでは、WWW-localというディレクトリがそれです。 したがって、URL

http://www-local.twcu.ac.jp/~b00a001/comp2e/ex1.html

は、ファイル

/Users/b04a001/WWW-local/comp2e/ex1.html

を指定していることになるのです。

file方式やhttp方式のURLでは、ファイルの絶対パス名の代わりにディレクトリの絶対パス名が書けます。 このようなURLが指定された場合、ブラウザの反応はWWWサーバの設定に依存しますが、たいていは次のいずれかです。

例えば、Safariの「場所:」入力欄に

http://www.twcu.ac.jp/unofficial/

と入力しますと、東京女子大学の非公式情報のホームページが表示されます。 このURLは、コンピュータwww.twcu.ac.jpのファイル

/var/lib/httpd/htdocs/unofficial/index.html

を指定しているのです。 (ドキュメントルートが/var/lib/httpd/htdocsの場合。)

9.2.3 相対URL

絶対URLとは、アクセス方式と設置箇所を完全に指定する文字列でした。 相対URLとは、これらを部分的に指定する文字列です。 相対URLは、主にHTMLドキュメントで用いられ、そのHTMLファイルが基準になります。 基準となるHTMLファイルを指定する絶対URLを、 基準URLbase URL )とよびます。 相対URLが指定するものは、この相対URLと基準URLから決定されます。 この決定手続きを、相対URLの解決といいます。

例として、基準URLが

http://www.fiction.co.jp/people/1999/list.html

であるとしまして、相対URLがどのように解決されるかを説明します。

基準URL http://www.fiction.co.jp/people/1999/list.html
相対URL top.html
 →    http://www.fiction.co.jp/people/1999/top.html

ファイル名は相対URLの一種です。 この場合、基準URLの最後のファイル名を取り除き、相対URLのファイル名を付け加えた文字列に解決されます。 すなわち、

http://www.fiction.co.jp/people/1999/list.html

で指定されたHTMLファイルのドキュメントに、

<a href="top.html"></a>

という始点アンカーがあれば、そこをクリックしますと

http://www.fiction.co.jp/people/1999/top.html

の内容が表示されます。

基準URL http://www.fiction.co.jp/people/1999/list.html
相対URL konishi/intro.html
 →    http://www.fiction.co.jp/people/1999/konishi/intro.html

ファイルの相対パス名も相対URLの一種です。 この場合も、基準URLの最後のファイル名を取り除き、相対URLの相対パス名を付け加えた文字列に解決されます。

基準URL http://www.fiction.co.jp/people/1999/list.html
相対URL ../1998/list.html
 →    http://www.fiction.co.jp/people/1998/list.html

相対URLでは、一つ上のディレクトリを指定することもできます。 ただし、http方式の場合、ドキュメントルートより上は指定できません。

基準URL http://www.fiction.co.jp/people/1999/list.html
相対URL /about/detail.html
 →    http://www.fiction.co.jp/about/detail.html

ファイルの絶対パス名も相対URLの一種です。 この場合は、基準URLの絶対パス名の部分を取り除き、相対URLの絶対パス名を付け加えた文字列に解決されます。

基準URL http://www.fiction.co.jp/people/1999/list.html
相対URL file:/Users/konishi/test.html
 →    file:/Users/konishi/test.html

HTMLドキュメントに絶対URLを書いた場合は、基準URLに関わらず、その絶対URLに解決されます。

9.2.4 baseタグ

<base> タグを用いますと、HTMLファイルの所在に関わらず、基準URLを明示的に指定できます。 書式は、 <base href=" URL "> です。 このタグに終了タグはありません。 また、このタグは <head></head> の中に書きます。

例えば、

<html>
  <head>
    <title>Image file collection</title>
    <base href="http://www.fiction.co.jp/img/list.html">
  </head>
  <body>
    <h1>イメージファイルコレクション</h1>
    <img src="pic01.jpeg" alt="pic01">
    <img src="pic02.jpeg" alt="pic02">
    ...
  </body>
</html>

と書きますと、このHTMLファイルがどこにあったとしましても、イメージファイル

が指定されることになります。

9.2.5 階層的なホームページ

ホームページが大規模になりますと、一つのディレクトリにすべてのファイルを置いたのでは、管理が難しくなります。 階層的ディレクトリを利用して、ファイルを分類、整理するべきです。 しかし、これはそれほど単純な作業ではありません。 きちんとした方針を定めておかないと、ファイルが増えるにつれて、どこに何があるのか分からなくなってしまいます。

有用な方針のひとつに、「表現対象に階層構造があれば、それをディレクトリの構造に反映させる。」があげられます。 この方針に従ったホームページの作成例を、以下に示します。

ここで、「東京都ガイド」というホームページの作成について考えます。 これは、都内の観光地を紹介するもので、紹介する観光地は順次増やしていく予定とします。 最初の観光地を東京女子大学とし、次のようにホームページを作成したとします。

tokyo.html
東京都ガイド

東京都のお勧めスポットは 杉並区 です。
suginami.html
杉並区ガイド

杉並区は 東京都 にあります。 杉並区のお勧めスポットは 東京女子大学 です。
twcu.html
東京女子大学ガイド

東京女子大学は 杉並区 にあります。

この程度でしたら、階層的ディレクトリを利用しなくても大丈夫です。 しかし、観光地を増やしていくにつれて、ディレクトリ comp2e には、市区町村のHTMLファイル、観光地のHTMLファイル、そして練習用のHTMLファイル(ex1.html など)が混在することになり、だんだんファイルが探しにくくなることが予想されます。

そこで、「都道府県」→「市区町村」→「観光地」という階層構造を利用して、次のようにファイルを整理することにします。

                    :
                    |
                  comp2e
                    |
      +-------------+-------------+
      |             |             |
  ex1.html      ex1.html~       tokyo
                                  |
                    +-------------+
                    |             |
                suginami     tokyo.html
                    |
                    +-------------+
                    |             |
              suginami.html     twcu
                                  |
                                  +
                                  |
                              twcu.html
  1. 「東京都ガイド」のディレクトリ tokyo を作成します。
  2. このディレクトリの中に、市区町村のディレクトリ(この段階では suginami のみ)を作成します。
  3. 市区町村のディレクトリの中に、観光地のディレクトリ(この段階では twcu のみ)を作成します。
  4. 「東京都ガイド」のトップページ tokyo.html はディレクトリ tokyo の中に作成します。
  5. 市区町村のHTMLファイル(この段階では suginami.html のみ)は、対応する市区町村のディレクトリの中に作成します。
  6. 観光地のHTMLファイル(この段階では twcu.html のみ)は、対応する観光地のディレクトリの中に作成します。

Finderを用いてディレクトリを作成するは、メニュー・バーから「ファイル」→「新規フォルダ」とします。 この場合は、次のような作業になります。

  1. 左側のホーム・ボタンをクリックします。
  2. アイコンWWW-localをダブル・クリックします。
  3. アイコンcomp2eをダブル・クリックします。
  4. ディレクトリtokyoを作成します。
  5. アイコンtokyoをダブル・クリックします。
  6. ディレクトリsuginamiを作成します。
  7. アイコンsuginamiをダブル・クリックします。
  8. ディレクトリtwcuを作成します。

HTMLドキュメントを書く場合、リンク

に注意する必要があります。 ディレクトリの構造

                    :
                    |
                  comp2e
                    |
      +-------------+-------------+
      |             |             |
  ex1.html      ex1.html~       tokyo
                                  |
                    +-------------+
                    |             |
                suginami     tokyo.html
                    |
                    +-------------+
                    |             |
              suginami.html     twcu
                                  |
                                  +
                                  |
                              twcu.html

から相対URLを求めますと、

となりますので、HTMLファイルは次のようになります。

~/WWW-local/comp2e/tokyo/tokyo.html
<h1>東京都ガイド</h1>
<p>
東京都のお勧めスポットは
<a href="suginami/suginami.html">杉並区</a>
です。
</p>
~/WWW-local/comp2e/tokyo/suginami/suginami.html
<h1>杉並区ガイド</h1>
<p>
杉並区は
<a href="../tokyo.html">東京都</a>
にあります。
杉並区のお勧めスポットは
<a href="twcu/twcu.html">東京女子大学</a>
です。
</p>
~/WWW-local/comp2e/tokyo/suginami/twcu/twcu.html
<h1>東京女子大学ガイド</h1>
<p>
東京女子大学は
<a href="../suginami.html">杉並区</a>
にあります。
</p>

これで、ファイルが増えても大丈夫になりました。 例えば、東京女子大学の写真を撮って twcu.jpg というファイルにしたならば、それをディレクトリ twcu の中に置きます。 観光地を増やすには、杉並区内ならばディレクトリ suginami の中に対応するディレクトリを作成します。 杉並区外ならば、いったんその市区町村のディレクトリを作成し、そしてその中に対応するディレクトリを作成します。


9.3 演習9

階層構造を持つホームページを作成してください。 以下の例を参考にして、スポーツの「リーグ」→「チーム」→「選手」、海外旅行の「国」→「都市」→「観光地」などの階層構造を考え、その構造を反映したディレクトリを作成し、それぞれのディレクトリにHTMLファイルを置いてください。 用意するHTMLファイルは3個です。 また、一つ上の階層と一つ下の階層にリンクを張ってください。 href 属性の値は、絶対URLではなく相対URLとします。

例 9.1 
~/WWW-local/comp2e/major/major.html
メジャーリーグに注目

メジャーリーグの注目チームは ヤンキース です。
~/WWW-local/comp2e/major/yankees/yankees.html
ヤンキースに注目

ヤンキースは メジャーリーグ のチームです。 ヤンキースの注目選手は 松井 です。
~/WWW-local/comp2e/major/yankees/matsui/matsui.html
松井に注目

松井は ヤンキース の選手です。

余力のある人は、選手や観光地などを増やしてください。


9.4 レポート課題

今日の演習9に従ってホームページを作成し、そのファイル名をkonishi@twcu.ac.jpあてにメールで報告してください。 メールには、学生番号、氏名、科目名、授業の日付け(6/18)を明記してください。


[小西ホームページ]   [目次・索引]   [前の授業]   [次の授業]

2004年6月18日更新
konishi@twcu.ac.jp
Copyright (C) 2004 Zenjiro Konishi. All rights reserved.