• ベストアンサー

Struts:フレーム内JSPからcssファイルの参照方法

htmlタグライブラリのframeで指定したJSPからスタイルシート(*.jsも)の参照ができません。 色々試したのですが、解決方法を教えて下さい。。。 環境はWin2000、Tomcat5、Struts2です。 ↓フレーム呼び出し <frameset rows="50%,*"> <html:frame page="A.jsp"/> <html:frame page="B.jsp"/> </frameset> ※ディレクトリ:/apname/jsp/X.jsp ↓フレーム内(A.jsp) <link rel="stylesheet" href="./C.css" type="text/css"/> ※ディレクトリ:/apname/css/C.jsp ちなみに「href="../css/C.css"」としてもダメなんです。 参照先ディレクトリは色々試したけど使えません。 よろしくお願いします。

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

  • ベストアンサー
  • azumaiya
  • ベストアンサー率100% (5/5)
回答No.2

No.1 の方が回答してくれているが別の回答を。 Struts を使用しているのならば、CSS などへのリンクは html:rewrite で書いた方がやりやすいと思う。 今回の構成では以下のように書きます。 <link rel="stylesheet" href="<html:rewrite page="css/C.css"/>" type="text/css"/> このように書くと、クライアントでは以下のようなサーバ相対になっています。 <link rel="stylesheet" href="/apname/css/C.css" type="text/css"/> JSP のタグ解析は HTML のタグとは別に行われるので、上記のように HTML の属性の中に JSP タグを書いても正常に処理されます。 CSS などは、JSP と別フォルダに入れることが多いために相対パスで書いていると JSP ファイルを移動したくなったときに面倒になります。 また、Struts の場合、JSP がおいてある場所と実際の URL の位置関係がアクションの実装の仕方などによっては一致しなくなりますので、「JSP ファイルから見ての相対パス」では正常に解決できなくなることがあります。 このため、サーバ相対に書き直してくれる html:rewrite を使用した方が無難だと思います。

参考URL:
http://tag.main.jp/htmlrewrite.html
kames
質問者

お礼

ありがとうございました!解決しました!

その他の回答 (1)

noname#94983
noname#94983
回答No.1

ディレクトリ構成を見た限りは、href="../../css/C.css"と思うが。

関連するQ&A

専門家に質問してみよう