質問: CentOS(Linux)のお話になりますが、異なるディレクトリにあるHTMLファイルや PHPファイルから参照できるように、JavaScriptやCSS内に記述されている `相対パス`を`絶対パス`に変更したいです。 つまり、例えばJavaScriptだと、 ``` $("#size_s img").attr("src","common/img/XXXXXXX.gif"); ``` と記述されているのを、 ``` $("#size_s img").attr("src","/virtual/service/example.com/http/test/common/img/XXXXXXX.gif"); ``` というようにサーバーの絶対パスに変更したいのですが、これでは認識しないので、 ``` $("#size_s img").attr("src","http://www.example.com/test/common/img/XXXXXXX.gif"); ``` としたら認識してくれました。 でも、個人的には前者のサーバーの絶対パスで記述したいのです。 なぜなら、 ``` http://www.example.com/test/common/img/XXXXXXX.gif ``` を、そのままブラウザで貼り付けるとXXXXXXX.gifだけが表示できてしまうからです。 XXXXXXX.gifだけがブラウザで表示されると問題あるかというと、そうではないのですが、 気持ちが悪いのです。 やはりサーバー内で隠せるものは隠して、表示させるべきHTMLとCSSのデザインだけが ブラウザに表示されるようにしたいです。 JavaScriptやCSS内の相対パスを`サーバーの絶対パス`にする良い方法は ないものでしょうか? もしご存知の方がいらっしゃいましたら、方法をご教授ください。 【開発環境】 * HTML * CSS * JavaScript * レンタルサーバー(CentOS 5) * WordPress(4.1.1) * PHP(5.2.16) * 作業環境(Windows7pro) * コード編集用(NoEditor)
回答: サーバーの絶対パスであれば、PHPで`$_SERVER['DOCUMENT_ROOT']`を書き出します。 単純にWEB_ROOTという意味でしたら、`"/common/img/XXXXXXX.gif"`というように 先頭に「`/`」が付いた記述が、いわゆるクライアントサイドにおける"絶対パス"です。