🌟
【メモ】絶対パス・相対パス
絶対パスばかり使用していたので、初心者なりに絶対パスと相対パスのメモをしました。
絶対パス・相対パスとは
絶対パス
絶対パスとは、https://
もしくはhttp://
の後にウェブ上のドメイン、フォルダ名、ファイル名を順に記載したファイルの表記方法です。ドメイン、フォルダ名、ファイル名といった各階層の区切りは「/」で区切ります。
例:絶対パス
- Unix系のシステム:
/home/user/documents/file.txt
のようになります。 - Windows:
C:\Users\Username\Documents\file.txt
のようになります。
絶対パスの特徴
- 階層ごとに全てのディレクトリ名を記述。
- ドメイン名から始まり、スラッシュ / で区切って具体的なディレクトリ名やファイル名を表記。
- リンク切れを防ぐことができますが、URLが長くなり、ローカル環境でのテストが難しいことがあります。
相対パス
相対パスは、今作業している階層(現在のディレクトリ)を基準にして、指定したファイルがどこにあるか記述します。絶対パスと比較すると、すべての階層を記述するわけではないため、URLは短縮されることが多いです。
例:相対パス
- 現在のディレクトリが
/home/user/documents
で、同じディレクトリ内のfile.txt
を指定する場合は、file.txt
のみの記載。 - 現在のディレクトリの親ディレクトリにある
images
ディレクトリ内のpicture.jpg
を指す場合は、../images/picture.jpg
。
相対パスの特徴
- 現在の階層を基準にして、目的のファイルがどこにあるか記述。
- 階層が深くなるごとに
../
という記号を使って表現。例えば、2つ上の階層ならば../../
。 - ローカル環境でテストできる一方、リンク切れしやすい。
書き方(相対パス)
- 同じフォルダに目的のファイルがある場合
- 「./」を使用してパスを表記。
- 「.」は現在の階層であることを指し、現在地を起点にフォルダ名、ファイル名と目的のファイルまで表記。
- 「./」は省略することも可能。
例
- ./image/sample.jpg
- image/sample.jpg
-
目的のファイルが現在地より上の階層にある場合
一度上の階層に行くにはドットを一つ増やして「../」を使用する。
例
- 1つ上の階層に目的のファイルがある場合
../image/sample.jpg - 2つ上の階層に目的のファイルがある場合
../../image/sample.jpg
絶対パスは一意であるため、どこからでも同じリソースを指すことができます。
相対パスは、ディレクトリ構造内での位置関係に基づいてリソースを指すことができます。
使い分けについて
リンク先が外部サイトのときは絶対パス
相対パスはサイトを構築する際の負担を軽減し、ドメイン名が変わっても対応しやすいが、外部サイトへのリンクを記述する場合には使用不可。
そのため、外部サイトを利用する際は必ず絶対パスによる記述が必要。
リンク先が内部サイトのときは相対パス
リンク先が同じサーバ内であれば相対パスが使用可能。
社内サイトなどサーバを自社で保有している場合は、作業の手間を削減しオフライン状態でも対応できる相対パスを使うのが一般的。
参考
Discussion