イメージのパスやリンクのパスで悩んでいます。
プログラムの変数をhtaccessを使用してスラッシュ区切りなどで静的な感じで表示しているのですが、
スラッシュで区切ると階層が深くなるので同じHTMLで作ったフレームを使うとイラストなどが表示されなくなってしまいます。
絶対リンクなどで記述すればよいのですが、自分のパソコンで制作しているときとレンタルサーバーにアップしたときだとドメインが変わってくるので、自分のパソコンで制作しているときが面倒です。
なにか、良い解決方法はありませんか?
期待されてる回答ではないかもしれませんが、
自分次のようにしてます。
スクリプトの絶対パスを定義したものを用意しておいて、
ローカルとサーバーで別の定義ファイルを読み込むようにしておきます。
そうしておいて、リンクは絶対パスのURLを必ず先頭につけるようにしてます。
ローカルなら
$script = "http://localhost/hoge/";
サーバーなら
$script = "http://example.com/";
のように別々で定義しておいて(切り替え可能にして)
echo "< img src=\"" . $script . "path/to/image\" />";
という感じです。(実際はSmartyを使ってます)
変に相対パスでやると複雑になるので、
絶対パスで解決するのが一番だと思います。
質問の意味を取り違えているかもしれませんが・・・。
<img src="/foo/bar/...../image.png">
<a href="/foo/bar/...../index.html">
はどうでしょうか。
ローカルでもHTTP経由(http:~)で表示する必要があります。「file:~」の場合この方法は使えませんので、(すべてのフレームを同じ階層に置くなどして)相対パスで表記します。
原始的な解決方法ですが、
自分のマシンにApacheとMySQLを入れて、
レンタルサーバのディレクトリ構成と同じに設定して
作業していけば、個々のファイルにおける面倒は解決できます。
あとは開発用のツールを使うとかでしょうか。
http://eclipsewiki.net/eclipse/
変に書き方を変えて解決しようとするよりは、
なるべく実環境に合わせて開発したほうが良いと僕は思いますが・・・。
期待されてる回答ではないかもしれませんが、
自分次のようにしてます。
スクリプトの絶対パスを定義したものを用意しておいて、
ローカルとサーバーで別の定義ファイルを読み込むようにしておきます。
そうしておいて、リンクは絶対パスのURLを必ず先頭につけるようにしてます。
ローカルなら
$script = "http://localhost/hoge/";
サーバーなら
$script = "http://example.com/";
のように別々で定義しておいて(切り替え可能にして)
echo "< img src=\"" . $script . "path/to/image\" />";
という感じです。(実際はSmartyを使ってます)
変に相対パスでやると複雑になるので、
絶対パスで解決するのが一番だと思います。
僕もまったく同じ感じで制作しています。
やっぱり、今のところこの方法が一番良いみたいですね。
有難うございました。
ドメイン部分がない絶対アドレス(?)で記述すればいいのではないですか。
<IMG SRC="/images/aaa.gif">
これなら、ドメイン名が変わってもそのままアクセスできます。
1番の人と同じかも...
僕もまったく同じ感じで制作しています。
やっぱり、今のところこの方法が一番良いみたいですね。
有難うございました。