Tips

4DACTION から返されたwebページのURLを得る

日付2001/05/18
ID01-588
バージョン6.5.x and 6.7.x
プラットフォームWindows and Mac

4DACTIONの直接の結果としてWebブラウザにページを返す場合、HTMLページの相対的なURLが適切に扱われないことになります。
例えば、デフォルトホームページに以下のようにリンクを持っているとします。

<a href="/4DACTION/SendPage2">Click to send page 2.</a>

4Dプロジェクトメソッド「SendPage2」については以下の通りです。

SEND HTML FILE("page2.html")

そして「page2.html」ファイルのコンテンツは以下の通りです。
<html><head><title>Page 2</title></head><body><img src="picture.gif"></body></html>

ページ「page2.html」がブラウザに送られる時、イメージファイルは適切に表示れません。このイメージのプロパティをチェックすれば、ブラウザが「http://www.hostname.com/4DACTION/picture.gif」を要求していることを理解するでしょう。実際これは4Dに関する問題ではなく、それはWebブラウザが次のように設計されているからです。それらは自動的にその内に含まれていたすべての相対的なURLの前の要求されたドキュメントのBaseURLを加えます。

これを修正するためにはいくつかの方法があります。

1) URLの前にスラッシュ(/)を加えて、サイトのルートを参照するように
してください。この方法では、ブラウザは「4DACTION/」部分を含まず、
URLのホストネームだけをURLの前に付け加えます。
<img src="/picture.gif">

2) URLの中で相対的なものの代わりに絶対的なリンクを使用してください。
<img src="http://www.hostname.com/picture.gif">

3)ページに全て関連したリンクにあてはまる特定のドキュメントのBase URLを指定するために、HTMLドキュメントのHEADセクションにBASEタグを置きます。これは、ドキュメントが要求された位置を無視します。

例えば、
<base href="http://www.hostname.com">