Published on

ファイルパスについて。相対パス、絶対パス、サイトルート相対パス

Authors

前回XAMPPで複数のサイトのテストサーバーを作ってみました(バーチャルホスト)という記事を書いた時に「サイトルート相対パス」が含まれているページがあるので通常のテストサーバーの設定とはちょっと違う設定をしたのですが、今回はファイルパスについて整理しておこうと思います。

ファイルパスとは?

ファイルパスは英語で書くと「File Path」となります。「File Pass」ではありません。「Path」の意味は小道とか経路という意味です。コンピューターの世界において、そのファイルまで行く経路、すなわちファイルパスというのはファイルの住所と考えて良いかと思います。htmlなどで、画像等を参照する場合にこのファイルパスを使って画像の場所を特定するわけですが、その方法にはいくつかあります。

相対パス

<img src="./images/gazo.jpg" alt="画像">

現在の位置から、目的のファイルやフォルダまでの道筋を記述する方式のことを相対パスと言います。相対パスの指定方法は現在位置のフォルダを「./」として、上位のフォルダを「../」で表わします。「../../」という書き方であれば、二階層上位の場所を表します。htmlの場合であれば「/」(スラッシュ)を使いますが、Windowsなどであれば「\」(円マーク)が使われています。エクスプローラーなどでアドレスを確認すればわかると思います。相対的に場所を指定してあるのでファイルの階層などが変わらない限りはファイルパスの記述を変更する必要はありません。

絶対パス

<img src="http://mypcmemo.com/images/gazo.jpg" alt="画像">

urlの一番最初(http:など)から、目的のファイルやフォルダまでの道筋を省略などをしないですべて記述する方式のことを絶対パスと言います。Wordpressでは通常はファイルパスを絶対パスで指定してあります。ファイルやフォルダの位置を省略しないで記述してあることによって、ファイルの階層を移動したりした場合でもファイルパスを変更する必要はありませんが、ドメイン名を変更したりする場合は記述してある部分を全て変更しなくてはなりません。

サイトルート相対パス

<img src="/images/gazo.jpg" alt="画像">

web上での最上位階層(サイトルート)のフォルダから、目的のファイルやフォルダまでの道筋を記述する方式のことをサイトルート相対パスと言います。相対パスでは現在の階層「./」を省略して書くことができるのですが、同じように絶対パスの http:// の部分を省略したのがこのサイトルート相対パスということなのでしょうか。この書き方は大規模なサイトを作成したりする場合に多用されるようです。ファイルの階層が変わった場合でも即座に反映されるからでしょう。

まとめ

僕はファイルパスを記述する場合にはほとんど相対パスを使います。絶対パスを使う場面は他のサイトから引用する場合等以外には使わないので、同じサイト内で使うことはありません。ですが、Wordpressでは絶対パスが使われています。これにはいくつかの理由があるようですが、ここでは割愛します。階層が違うページで共通のJavascriptなどを読み込む場合等にサイトルート相対パスは便利なのですが、冒頭で書いたようにローカルでその環境を作ろうとするとちょっとした手間がかかってしまうというところが難点でしょうか。