• ベストアンサー

JSP使用によるスタイルシート読み込みについて

勉強のため、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"・・・> 他にスタイルシートを読み込む方法はございません でしょうか。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.3

解決したと思いますが、誤った書き込みがあるので訂正します。 >JSP は一度、コンパイルされて、ワークフォルダに実体(.java)ができますから、表示されている JSP の実体がある場所がカレントパスになります。 >こういった事象は、カレントパスの誤認識のせいで起こる場合があります。 の部分は間違いです。 linkタグで指定されたCSSの場所はJSPやサーブレットが解決するわけではなく、ブラウザが解決します。なのでJSPの実体のパスなどは無関係で、カレントパスの誤認識等で起こるわけではありません。むしろ正常な動作です。 URL(1)でアクセスした場合、ブラウザは「http://localhost/aa/bb/cc/dd/」をカレント(現在地)と見なします。 しかし、URL(2)でアクセスした場合、ブラウザは「http://localhost/aa/」をカレントと見なすため、CSSのパスが相対パスで指定された場合、両者のCSSは全く違うものを指すことになります。

kumon
質問者

お礼

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

その他の回答 (2)

  • yusukey
  • ベストアンサー率56% (17/30)
回答No.2

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

kumon
質問者

お礼

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

  • Hughes
  • ベストアンサー率12% (1/8)
回答No.1

JSP は一度、コンパイルされて、ワークフォルダに実体(.java)ができますから、表示されている JSP の実体がある場所がカレントパスになります。 こういった事象は、カレントパスの誤認識のせいで起こる場合があります。 私は、CSS ファイルに関しては、いつもルート('/')から指定するようにしております。 例: <link rel="StyleSheet" href="/project/jsp/common/style.css" type="text/css"> ルートパスはシステム毎の設定(構成)で変わりますので、ルートパスさえしっかりと把握できれば、このやり方でできると思います。

kumon
質問者

お礼

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

関連するQ&A

専門家に質問してみよう