- ベストアンサー
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"・・・> 他にスタイルシートを読み込む方法はございません でしょうか。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
解決したと思いますが、誤った書き込みがあるので訂正します。 >JSP は一度、コンパイルされて、ワークフォルダに実体(.java)ができますから、表示されている JSP の実体がある場所がカレントパスになります。 >こういった事象は、カレントパスの誤認識のせいで起こる場合があります。 の部分は間違いです。 linkタグで指定されたCSSの場所はJSPやサーブレットが解決するわけではなく、ブラウザが解決します。なのでJSPの実体のパスなどは無関係で、カレントパスの誤認識等で起こるわけではありません。むしろ正常な動作です。 URL(1)でアクセスした場合、ブラウザは「http://localhost/aa/bb/cc/dd/」をカレント(現在地)と見なします。 しかし、URL(2)でアクセスした場合、ブラウザは「http://localhost/aa/」をカレントと見なすため、CSSのパスが相対パスで指定された場合、両者のCSSは全く違うものを指すことになります。
その他の回答 (2)
- yusukey
- ベストアンサー率56% (17/30)
base 要素で相対パス解決の起点を指定してみてはいかがでしょうか。
お礼
ありがとうございます。試してみます。
- Hughes
- ベストアンサー率12% (1/8)
JSP は一度、コンパイルされて、ワークフォルダに実体(.java)ができますから、表示されている JSP の実体がある場所がカレントパスになります。 こういった事象は、カレントパスの誤認識のせいで起こる場合があります。 私は、CSS ファイルに関しては、いつもルート('/')から指定するようにしております。 例: <link rel="StyleSheet" href="/project/jsp/common/style.css" type="text/css"> ルートパスはシステム毎の設定(構成)で変わりますので、ルートパスさえしっかりと把握できれば、このやり方でできると思います。
お礼
返答ありがとうございました。ご指摘した通りでした。 <link>タブのパスをルートからに変更し、workフォルダ に格納した所、読み込む事に成功致しました。凡ミス です。ご指摘ありがとうございました。
お礼
そうなんですか。勉強になりました。返答ありがとうございました。