ファイルのパスがいつもネックになっていることを考えて、ちょっと手を打つことに。
要するに、相対パスを多用しすぎなのがいけないのかなと。
相対パスは、同一ディレクトリ内とか、親ディレクトリとか、その程度なら非常に使いやすいですが。
PHP→XMLとか、HTML→CSSとか、折角ルート直下にディレクトリ切って分けてるところまで、相対パスで呼び出すのは・・・
改めて考えなくても、絶対パス使ったほうが遥かに分かりやすいですね。
てなわけで、対応策。
ルートのURLや基本的なディレクトリについては、PHPで定数管理して、パスを返すメソッドを共通関数として追加。
XMLとかアイコンとかのアクセスはメソッド経由で呼び出してやれば、煩わしさも減るし見た目もすっきりするしメンテもしやすい。
まさに一石三鳥。
で、早速作ったら、一つ変なところで躓きました。
結論から書きますと。
絶対パスと言っても、PHPとHTMLじゃ指定の仕方が若干違うんですよね。
PHPがサーバサイドプログラムなこと、すっかり失念してました(ぉぃ)
↓以下、備忘録代わりにコードを残しておきます。
http://masumi.cside.com/における、クラウアントサイドプログラム、サーバサイドプログラムそれぞれの場合の絶対パスの指定方法。
>クライアントサイドプログラム上での絶対パスの例
http://masumi.cside.com/css/sample.css
>サーバサイドプログラム上での絶対パスの例
/home/顧客ID/ルートディレクトリ/php/sample.php
サーバサイドプログラム上での絶対パスは、サーバごとに指定がまちまちなので、自分で調べるしかありません。
そんなときは、PHPの場合ですが、テストファイルを作ってrealpath関数で絶対パスを表示させてみれば大体分かります。
$filename="sample.php"; // テストファイル名(相対パス)
echo realpath($filename); // 絶対パスを表示
特に、うちのように共用サーバを借りている場合。サポートに連絡しても技術的な話は教えてくれないことがあります。
ちなみにCsideはあまり踏み込んでサポートしてくれないです。標準PEARは入ってるって話だったのに、やってみたらバージョン古いのかエラーになったし。
こんなときは、面倒でも自分で調べるしかないですね。