こんにちは、つしまです。先週の記事で「PHP」についてまとめました。
HTMLで作られたサイトをPHP化する練習を行なっている際に、絶対パスと相対パスの使い分けがきちんと覚えられておらずリンク切れを起こしてしまったので、今回の記事では絶対パスと相対パスがどういったものか、またそれぞれのメリットやデメリット、書き方などを復習も兼ねて改めてまとめたいと思います。
絶対パスと相対パスとは?
そもそもパソコンにおける「パス」とは、コンピューター上のファイルの住所のことです。ファイルがコンピューター上のどこにあるのかを、コンピューターが理解できる形にしたものを「パス」と言います。パスには書き方や種類があり、大きく分けると「絶対パス」と「相対パス」に分かれます。
絶対パス
ファイル名を階層構造の頂点から最後まで完全に表記する方法です。ファイルの居所を最初から最後まで完全に記述することから「フルパス」とも呼ばれていて、現在の作業フォルダがどこであっても、常に同じスタート地点から同じ経路の表示になります。

相対パス
絶対パスが居所を最初から最後まで記載したファイルの住所であるのに対し、相対パスでは現在のファイルから目的となるファイルまでの行き道を示します。そのため、作業しているファイル(スタート地点)が異なると目的のファイルが同じであっても表記が異なるのが特徴です。

それぞれのメリット・デメリット
絶対パス
メリット:
絶対パスは、指定元のファイルがどこにあっても目的ファイルの位置が変わらなければ記述が変わらないため、指定元のファイルが移動する場合に発生するリンク切れなどのミスを防ぐことができます。サーバ内における目的ファイルの位置を構造的に把握しやすいというメリットもあります。
デメリット:
階層構造の頂点から全てを省略せずに記載するため、パスが長くなりがちであるという点があります。収容するサーバやドメイン名が変わった時には、全ての記載を変更する作業も必要です。
相対パス
メリット:
絶対パスに比べて記述量が少なくて済むことです。また、サイトの引越しなどでサーバが丸ごと変更になるような場合でも、ファイル同士の位置関係が変わっていなければ、パスの表記を変更する必要がありません。
デメリット:
相対パスの場合、現在のファイルと目的のファイルまでの位置関係が変わるとリンク切れを起こしてしまいます。そのため、ファイルを別のところに移動させる場合は、相対パスの書き換えが必要です。
絶対パスと相対パスの書き方
絶対パス
https://もしくはhttp://の後にウェブ上のドメイン、フォルダ名、ファイル名を順に記載していきます。ドメイン、フォルダ名、ファイル名といった各階層の区切りは「/」で区切り、最上位のディレクトリから対象のファイルまでを順番に記載していく形です。

上記の絶対パスでは、「⚫︎⚫︎⚫︎co.jp」というファイル内の「img」フォルダの中にある「apple.jpg」ということになります。
相対パス
相対パスでは、現在の作業フォルダと目的のファイルの位置関係によって書き方が異なります。
目的のファイルが同じフォルダ(階層内)にある場合
同じフォルダであることを意味する「./」を使用してパスを記述します。「.」は現在の階層であることを指し、現在地を起点にフォルダ名、ファイル名と目的のファイルまで表記していきます。「./」は省略することもできます。

目的のファイルが1つ上の階層にある場合
同じ階層では「./」だったところを、一度上の階層に行く場合はドットを1つ増やして「../」を使用します。

さいごに
絶対パスではローカル上で使用できないためローカル上では相対パスを使用する必要があったり、リンク先が外部サイトの場合は絶対パスを使用する必要があったりと、使い所はそれぞれ異なります。それぞれのメリット・デメリットや書き方を知り、メリットに合わせてパスを使い分けできるようにしておきたいです。
また、パスの書き方を理解して、リンク切れを起こしたときはパスの記述を間違えていないか、きちんと自分で確認できるようにしておきたいです。