- Fire Emblem 私設二次創作サイト - 

« [雑記] よくあること | メイン | [雑記] パンくず式ナビゲーション »

ファイルのパスがいつもネックになっていることを考えて、ちょっと手を打つことに。

要するに、相対パスを多用しすぎなのがいけないのかなと。

相対パスは、同一ディレクトリ内とか、親ディレクトリとか、その程度なら非常に使いやすいですが。
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は入ってるって話だったのに、やってみたらバージョン古いのかエラーになったし。
こんなときは、面倒でも自分で調べるしかないですね。

トラックバック

このエントリーのトラックバックURL:
http://masumi.cside.com/cgi/blog/mt/mt-tb.cgi/92

About

2009年1月11日 14:32に投稿されたエントリーのページです。

ひとつ前の投稿は「[雑記] よくあること」です。

次の投稿は「[雑記] パンくず式ナビゲーション」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。