アプリ版:「スタンプのみでお礼する」機能のリリースについて

勉強のため、struts + Eclipseを使用して、JSP
を作成しているのですが、<link>タグを使用して
スタイルシートを読み込みたいのですが、うまく
いきません。(1)のURLでJSPを表示するとうまくい
くのですが、イベントを実行(submit)すると、URL
が(2)に変更されてしまい、読み込めません。

URL(1)
http://localhost:8080/aa/bb/cc/dd/index1.jsp

URL(2)
http://localhost:8080/aa/index1.do

現在、<link>タブは相対パスを指定しているの
ですが、パスを絶対パスに変更すればうまくいき
ます。

変更前(相対パス指定)
<link href="../style.css"・・・>

変更後(絶対パス指定)
<link href=
"http://localhost:8080/aa/bb/cc/style.css"・・・>

他にスタイルシートを読み込む方法はございません
でしょうか。よろしくお願いします。

A 回答 (3件)

解決したと思いますが、誤った書き込みがあるので訂正します。



>JSP は一度、コンパイルされて、ワークフォルダに実体(.java)ができますから、表示されている JSP の実体がある場所がカレントパスになります。
>こういった事象は、カレントパスの誤認識のせいで起こる場合があります。
の部分は間違いです。
linkタグで指定されたCSSの場所はJSPやサーブレットが解決するわけではなく、ブラウザが解決します。なのでJSPの実体のパスなどは無関係で、カレントパスの誤認識等で起こるわけではありません。むしろ正常な動作です。

URL(1)でアクセスした場合、ブラウザは「http://localhost/aa/bb/cc/dd/」をカレント(現在地)と見なします。
しかし、URL(2)でアクセスした場合、ブラウザは「http://localhost/aa/」をカレントと見なすため、CSSのパスが相対パスで指定された場合、両者のCSSは全く違うものを指すことになります。
    • good
    • 0
この回答へのお礼

そうなんですか。勉強になりました。返答ありがとうございました。

お礼日時:2005/09/15 18:25

base 要素で相対パス解決の起点を指定してみてはいかがでしょうか。

    • good
    • 0
この回答へのお礼

ありがとうございます。試してみます。

お礼日時:2005/09/15 18:22

JSP は一度、コンパイルされて、ワークフォルダに実体(.java)ができますから、表示されている JSP の実体がある場所がカレントパスになります。



こういった事象は、カレントパスの誤認識のせいで起こる場合があります。

私は、CSS ファイルに関しては、いつもルート('/')から指定するようにしております。

例:
<link rel="StyleSheet"
href="/project/jsp/common/style.css"
type="text/css">

ルートパスはシステム毎の設定(構成)で変わりますので、ルートパスさえしっかりと把握できれば、このやり方でできると思います。
    • good
    • 0
この回答へのお礼

返答ありがとうございました。ご指摘した通りでした。
<link>タブのパスをルートからに変更し、workフォルダ
に格納した所、読み込む事に成功致しました。凡ミス
です。ご指摘ありがとうございました。

お礼日時:2005/09/14 11:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!