外部ファイル読み込み時の相対パスの記述方法
外部ファイル読み込み時の相対パスの記述方法は言語によって異なるみたい。
今回気が付いたのは、PHPとCSSでの差異。
PHPでは、大元ファイルから辿る相対パス。
CSSでは、読み込み先ファイルから辿る相対パス。
ディレクトリ構成
状況
ユーザーアクセス
ユーザーがアクセスするファイルは aaa ファイル。
入れ子状況
その aaa ファイルは、bbb ファイルを読み込んでいる。
その bbb ファイルは、ccc ファイルを読み込んでいる。
お題
そのときの bbb ファイルにおける ccc ファイルへのパスの書き方。
CSS の場合
解答
bbb.css から辿るパスを記述。
ソース
aaa.css
- @import url("../bbb.css");
bbb.css
- #hoge {
- background-image: url("c/ccc.png"); // ← bbb.css からみたパス
- }
PHP の場合
解答
aaa.php から辿るパスを記述。
ソース
aaa.php
- require('../bbb.php);
bbb.php
- $image_path = '../c/ccc.png'; // ← aaa.php からみたパス
PHP の場合は読み込みで、CSS の場合は参照
ということなのかな?
2015-12-16 追記 ここから
PHP で、当該ファイルから辿りたい場合
上記例において、bbb.php で記述する ccc.png へのパスを
bbb.php から辿りたいとき。
- $image_path = dirname(__FILE__) . '/c/ccc.png'; // ← bbb.php からみたパス
bbb から見て、登る必要があるとき
未試行。
- $image_path = dirname(__FILE__) . '/../d/ddd.png'; // ← bbb.php からみたパス
参考サイト
WEB EGG:phpでrequire_onceするときに相対パスでハマった
2015-12-16 追記 ここまで