絶対パス?相対パス? ファイルパス(file path)ごとの特徴をあらためて。
絶対パス?相対パス? ファイルパス(file path)ごとの特徴をあらためて。
パスの種類っていっぱいありますよね。
絶対パス
相対パス
ルートパス
フルパス
色々あります。
どう違うのでしょうか。
詳細については調べれば他サイトにも沢山情報があるので詳しくは書きません。
パス例とメリットデメリット、利用シチュエーションなどを
自分なりの言葉でまとめておきます。
どの書き方にもメリットデメリットがあるため、
どれが推奨とはいえません。
■絶対パス
例:http://tech.kimihiko.jp/img/design/blog/logo.png
メリット:
⇒とりあえずどこからでも確実にリンクさせられる。
デメリット:
⇒冗長になる。ドメインが変わったら書き換えが必要。
利用シチュエーション:
⇒余り使わない。
⇒とにかく今すぐ確実にリンクしたいとき。
⇒httpサーバーからhttpsサーバーを参照するときなどに書くことがある。
が、 //tech.kimihiko.jp/article/170851629.html のように書くことで
httpとhttpsの両方に対応できるらしい。
■相対パス
例:../../design/blog/logo.png
例:./design/blog/logo.png
メリット:
⇒環境を用意しなくても、ローカルでもブラウザで確認できる。
⇒本番環境とテスト環境で、アップ先の階層が違う場合でもリンク切れしない。
デメリット:
⇒ファイル構造が深くなると分かりづらい。
利用シチュエーション:
⇒ファイル構造が浅めの小規模サイト
⇒複数人が絡むサイト
⇒本番環境とテスト環境で違う場所に公開される可能性があるとき
■ルートパス(絶対パスのなかま)
例:/design/blog/logo.png
メリット:
⇒パッと見、理解しやすく分かりやすい。(同じファイルパスでどこからでも読み込めるため)
⇒同じファイルパスでどこからでも読み込めるため、ページの量産がラク。
⇒ファイル階層が深くなっても、一番上の階層からの指定のため分かりやすい。
デメリット:
⇒環境を用意しなければ、ローカルではブラウザで確認できない。(リンク切れになる。)
⇒本番環境とテスト環境で、アップ先の階層が違う場合、ファイルパスを変更する必要がある。
⇒相対パスへの変更に時間がかかる。
利用シチュエーション:
⇒ファイル構造が深めの大規模サイト
⇒一人で作業が完結するサイト
■フルパス(絶対パスのなかま)
例:/home/xxxx/www/design/blog/logo.png
メリット:
⇒?
デメリット:
⇒?
利用シチュエーション:
⇒動的な部分のパス(一般的な公開範囲よりさらに上位のエリア)
◇◇◇
乱雑ですが、以上です。
少しだけまとめると
・普段使うのは 相対パスか、ルートパス。
・ルートパスはかんたん、相対パスは手間がかかる。
・環境が許すならルートパスで簡単に済ませたいが、
環境が複雑そうな場合は相対パスにしておいたほうが後々無難か。
◇◇◇
個人レベルではルートパスを愛用しますが
業務など複数人が絡む案件ではルールや運用上の問題が発生してきますので
妥当な書き方を選ぶ必要が出てくると思います。
つまりは色々な書き方を理解し、対応できることで、つぶしが利くと思われます。
まとまりませんが、以上です。
上記書き上げるにあたり、
以下ページが参考にしました。感謝(´-`).。oO
絶対パス、相対パス、フルパスの説明。IT用語のパス(path)って何。フルパスで指定?パスの考え方を説明します。
http://www.chama.ne.jp/download/web/path.htm
コーディングにおけるファイルパスの書き方 | WEB業界で働く人や興味がある人に役立つ情報サイト“qam(カム)”
http://www.qam-web.com/?p=3718
HTMLの相対パス、絶対パスを紹介します【HTML5実践編】
http://scene-live.com/page.php?page=16
ファイルやフォルダの所在を示すパスの種類 – Rewish
http://rewish.jp/blog/tech/path
◆ルートパスは絶対パス
◆相対パス
一般的に広く使われてる指定方法で、指定する側のファイル(例ではindex.html)からの位置を .(ピリオド)と /(スラッシュ)で指定します。
同じディレクトリ(zzz)
./(ピリオド+スラッシュ)または ファイル名のみ(index.html)
一つ前のディレクトリ(yyy)
../(ピリオド+ピリオド+スラッシュ)
二つ以上前のディレクトリ(xxx以上)
../../ ディレクトリ分 ../ を追加絶対URL
http:// や https:// から始まるURLで指定する。リンクする側(例ではindex.html)の場所に依存しないと言うメリットはありますが、サイトのドメイン自体が変わった場合全てのリンクを入れ替える必要がある。ルートパス(絶対パス)
絶対パスの一種で、ルート(例の場合 http://example.com/ )からのパスを指定します。
基本的な概念は絶対URLと同じですが、ドメインなどに関係なく指定することができるため、ローカルの開発環境でドメインが異なる場合などに便利です。/
http://example.com//xxx/
http://example.com/xxx//xxx/yyy/
http://example.com/xxx/yyy//xxx/yyy/zzz/index.html
http://example.com/xxx/yyy/zzz/index.html