- ベストアンサー
メニューをincludeして、階層が変わっても相対パスで可能
こんにちは。 メニューをincludeしたんですが、 階層が変わると リンク先が相対パスでは上手くいかなくなるのですが、何か良い対策はありませんか? 絶対パスでいくしかないでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- gonagona
- ベストアンサー率80% (12/15)
関連するQ&A
- 階層が違う場合の絶対パス相対パスについて
kari.htmlにある内容のボックスがあるとして、 それはCSSでデザインされ、画像も入っています。 この下の階層の menu.htmlの中にkari.htmlで使ったある内容ボックスの同じものがまるまる入ります。 なので、kari.htmlの内容を更新してコピーしてmenu.htmlにもはります。 この場合、画像やCSSを相対パスではなく、絶対パスにしておくと、階層が異なっても きれいに入ります。 ../からではなく、/から始まるパスです。 このやり方は間違っているのでしょうか? 同じようにページ、階層を渡って共通部分には絶対パスをしています。 こういうふうに使い分けしていくものでしょうか? phpでインクルードしてもいいんですが、他にもインクルードが多々あるので、 ページ内でそんなにインクルードあってもいいものかと思いまして。。(勝手な勘違いでしょうか?) 宜しくお願い致します。
- ベストアンサー
- PHP
- include_pathに絶対パスを使うことはできないのでしょうか?
include_pathに絶対パスを使いたいと思っています。 本当は php_value include_path "/common/php" としたいところですが、上手くいかなかったので php_value include_path ".:common/php:../common/php:../../common/php" として、ほとんどの階層からの相対パスを指定することで、上手く動くようになりました。 しかし、どうしても絶対パスで指定したいです。他のサイトでinclude_pathを調べても、どこも絶対パスでやっています。私は何がいけないのでしょうか……?
- ベストアンサー
- PHP
- INCLUDE VIRTUALで読み込むファイルのパス
<!--#INCLUDE VIRTUAL="/xxx.html"-->でメニュー部分などを1つのHTML(xxx.html)で読み込みたいです。ただ、メニュー部分のHTML側の画像URLなどを相対パスで記載したすると<!--#INCLUDE VIRTUAL="/xxx.html"-->を記載するファイルに階層が異なるものがあったときには、パスが違ういうことになってしまいます。(xxx.html自体は読み込めるのですが、画像URLなどが異なってしまう)これは絶対パスで記載するしかないのでしょうか?
- ベストアンサー
- HTML
- includeのパス指定は"/"で始められない?
こんにちは。php5でウェブアプリを作っています。 いろんな階層からincludeされるファイルの中にさらにincludeを記述しているため、相対パス指定ではなく、ドキュメントルートからのパスを include("/top/hoge/aaa.php"); のように書きたいのですが、こうすると読み込んでくれません。includeではこういう指定は出来ないんですか? みなさんどうなさってますでしょうか。includeファイルの中のinculdeのパスの指定…。
- ベストアンサー
- PHP
- include,requireで外部URLの呼び込み
include,requireのどちらでもいいのですが、別ドメイン或いは同ドメイン内における違う階層のファイルなど(例えば外部のhttp://www.ooxx.sample)を呼び込む際に、呼び込み先のリンクや画像パスが相対バスではうまくいきません。呼び込み先のリンク、画像パスを絶対URLにすれば問題ないと思いますが、作業が困難になるので避けたいです。 PHPでinclude,requireの使い方は向かないのでしょうか?或いは、他の方法で回避できる方法はないのでしょうか? (SSIやHTMLでインラインフレームみたいなことは使わない)
- 締切済み
- PHP
- 相対パスのことでわかる方教えてください
htmlの相対パスのことで質問です。 index.htmlのログインボタンに相対パスで「./」のリンクを つけました。 同じ階層にindex.phpファイルをおいているのですが、 index.htmlのログインボタンを押すと、index.phpに 飛んでいきます。 相対パスの「./」はindex.htmlを優先すると思ったの ですが、index.phpを優先するのでしょうか。
- ベストアンサー
- デザイナー・クリエイティブ職
- インクルードファイルからの相対パス
main.php: <?php include('x/sub.php'); ....... ?> x/sub.php: <?php $a=file('data.txt'); ....... ?> において data.txt は main.php と同じディレクトリになければなりません インクルードされたファイルからファイルを呼び出すときに インクルード先からの相対パスでファイルを指定できるようにできないでしょうか? つまり上の場合にはdata.txtがsub.phpと同じディレクトリにあるようにです
- ベストアンサー
- PHP
- php インクルードincludeした時のパス
phpにてincludeした時のパスで躓いています。 現在のツリーは以下の様になっています。 index.html common ├header.html ├footer.html ├right.html ├img ├navi-home.jpg ├navi-1.jpg ├css ├base.css salon ├hair ├kari ├index.html ├access ├ ├index.html ├menu ├ ├index.html この中の../hair/kari/index.htmlの中に ../common/header.html及びfooter.htmlを <?php include_once(dirname(__FILE__).'/../../../common/header.html'); ?> にてインルードしています。(書き方あってます?dirname(__FILE__).いります?) つぎに../hair/kari/access/index.htmlの中にもインクルードします。 <?php include_once(dirname(__FILE__).'/../../../../common/header.html'); ?> という風に一つ下の階層なので../を付け足しました。 このようにページ毎にheaderまでの相対パスが違うので、そのページ毎にパスを書き換えていかなければいけないものなのでしょうか? また../始まりではなく/始まりでないと表示されません。 /始まりは絶対パスでしたっけ? この書き方は間違っているのでしょうか? そして最後に、 ../common/header.htmlの中の画像ファイルやリンクは <img src="/common/img/navi-home.jpg"> の様に書かないと、インクルードしたファイル側で表示されません。 これも同じように/始まりのこの書き方でいいのでしょうか? 宜しくお願い致します。
- ベストアンサー
- PHP
- 相対パスについて教えてください。
いつも質問ばかりですいません。 相対パスが、いまいちよくわかりません。 ../ だとか「階層」だとか、いまいちわかりません。 どなたか、詳しく教えてください。 よろしくお願いします。
- ベストアンサー
- HTML
補足
解決しました。 ありがとうございました。