• ベストアンサー

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

  • kumon
  • お礼率90% (20/22)
  • Java
  • 回答数3
  • ありがとう数11

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

  • ベストアンサー
  • 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

  • スタイルシートが適用されない

    いつも参考にさせていただいています。 現在index.html内で <link href="../css/style.css" rel="stylesheet" type="text/css"> という形で相対パスでスタイルシートを適用しようとしていますが、適用されません。 実際のフォルダ構成は以下のとおりです。 WEB-INF |__css    |__style.css |__jsp  |__index.html server.xmlのdocBase要素とか関係あるんでしょうか? 以下URLを参考にしましたがわかりませんでした。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1648272 以上宜しくお願いします。

    • ベストアンサー
    • Java
  • スタイルシートが適用されない。

    Servlet/JSPでWeb開発しているのですが、スタイルシートが反映されません。 ファイルの配置 app `---css   `--- x.css `---WEB-INF   `--- jsp      `---ja        `---a.jsp   `--- class      `---ja        `---A.class スタイルシートの指定で../css/x.cssと指定しています。 http://localhost:8080/app/ja/A(a.jspを表示)では適用されます。 ですが、Tomcatと連携で Proxy /ja/ ajp://localhost:8009/app/ja/ を指定して、 http://localhost/ja/A を表示するとサーブレットは問題なく動きますが、x.cssが適用されなくなります。 どうすれば適用されますか?

  • JSPからスタイルシートが読み込まれない。

    Eclipseでサーブレットを勉強しています。例えば、servというプロジェクトで、 http://localhost:8080/serv/index.jsp などとアクセスすると、スタイルシートがきちんと読み込まれるのですが、おなじファイルを別のプロジェクト(mvc)でサーブレットからフォ ワードするようにして、 http://localhost:8080/mvc のように、おなじファイルにアクセスするとスタイルシートが読み込まれません。何か別の作業が必要になるのでしょうか?

    • ベストアンサー
    • Java
  • スタイルシート2

    1.スタイルシートで、外部スタイルシートがありますが これはそんなに使い勝手がよいでしょうか? <link rel="stylesheet" type="text/css" href="style.css"> と記述する上で、これはルールですからしょうがないでしょうが、<link rel="stylesheet" type="text/css" とここで、stylesheetを指定していて、さらにtext/css" でも、”スタイルシート”ですよ!! といっているのですから、最後のhref"URL"後のstyle.css の記述は無駄になるような(くどい^^)気もします。 これは、しょうがないですよねー。 個人で使うなら、HTMLで充分なような・・ あと、埋め込みスタイルでよういような・・ 2.さらに、スタイルシートはたしかに軽くなりますが、 記述が面倒で、フルスペル(省略できない)。 HTMLでは、<Li></LI>や、<tr></tr>で 表示できますが、こちらはすべて書かなくてはならないので便利とはいえ、つかいやすいでしょうか^^ リンクできるのは、見やすく便利ですが・・・

  • スタイルシート

    こんばんは。HPを独学で作っている超初心者です。 スタイルシートが反映してくれないのです。下記の記述で 何が違うのでしょうか??? ---01.css--- <sytle type="text/css"> a:link{text-decoration:none;} <style> ---index.html(抜粋)--- <head> <link rel="stylesheet" href="01.css" type="text/css"> </head> どうしても index.html のリンク部分に下線が出てきます。 どうして消せないのかが分かりません!!! どなたか教えてください!よろしくお願いいたします!

  • スタイルシートが反映されません

    <link rel="stylesheet" href="style.css" type="text/css">で 外部スタイルシートの反映がされません。 このCSSファイルの中身をそのままHTMLファイルのHEAD部分に持っていったら反映されましたので、単純にリンクがうまくいっていないのか?と思うのですが・・・ ファイル名はあっているし、リンクもファイル名ではできなかったので 絶対パスで指定してみましたがダメでした。パスの指定ミスを防ぐためにファイルのプロパティを開いて、場所をコピペして最後のところに ¥をつけてファイル名を拡張子つきでくっつけましたがダメでした。 なにがいけないのでしょう・・・ いろいろと考えたり調べたりしているのですが、どうしてもわからないです。 CSSファイルはHTMLファイルと同一フォルダ内の同一階層にあります。(まだネット上に公開しておらずURLも持っていないので 個人のPCフォルダ内です)CSSファイルのアイコンはメモ帳に歯車のイラストのアイコンです。このアイコンになっていたらちゃんと CSSファイルだと思っていたのですがもしかしたら違うでしょうか? あ、HTMLファイルのHEAD部分の <meta http-equiv="conten-style-type" content="text/css" /> の書き込みもしてあります。 外部ファイル用の<link rel=だらだらだら>の後に </style>でしめてみたのですがダメでした。

  • 外部スタイルシートは分ける?

    外部スタイルシートを分けるのかそれともまとめるのか? もしくは分けるべきなのかまとめるべきなのかがわかりません。 index を含む全ページに共通の class 指定があれば、1つの外部でいいですが、 各ページ固有の class 指定があった場合これは分けたほうがいいでしょうか? つまり、 <link href="main.css" rel="stylesheet" type="text/css"> と全ページに置き、全ての指定をここに入れるのか、それとも <link href="main.css" rel="stylesheet" type="text/css"> <link href="a.css" rel="stylesheet" type="text/css"> として共通の指定と、各ページ固有の指定は分けたほうがいいのか、 そのあたりがわからなくて困ってます。 前者だと1つファイルでいいとは思いますが、長くなってしまいますし、 ページによっては必要ない部分まで読み込むことになります。 多分一長一短で好み次第ということにはなるかと思いますが、 実際にどちらの方法でやっていて便利だという経験をお聞かせいただければ、 大変ありがたく思います。よろしくお願いします。

  • HP作成 スタイルシート

    ビルダーを使ってHPを作成しています。そこで、ページの背景の上だけにgif画像を指定したくスタイルシートを追加してみたのですがうまくなりません。ビルダーのHTMLに追加しているのですが追加する場所を間違えているような気がします。ビルダーで背景色を#cc0000設定しています。 <TITLE></TITLE> <STYLE type="text/css"> <!-- BODY { background-image: url("image/gurad1.gif"); background-repeat: repeat-x } --> </STYLE> <LINK rel="stylesheet" href="image/table.css" type="text/css" id="_HPB_TABLE_CSS_ID_"> </HEAD> <BODY bgcolor="#cc0000" link="#ffffff" alink="#009900">

  • スタイルシートの読み込みについて

    はじめまして。 最近業務でスタイルシートを使うことになったのですが、 外部ファイルとしてスタイルシートを保存して、 HTMLの中にリンクの部分を書いておいても、 IEで表示したときに読み込んでくれません。(IEのバージョンは6.0です。) インターネットオプションのユーザー補助のところで、ホームページを見る場合は自分のスタイルシートを適用する、という設定にすれば読み込んで表示されるのですが、それをしないと、表示されませんし、 その設定にしてあっても、外部シートの上書きをした場合、更新ボタンをおしただけでは画面が変わらず、 いちいちインターネットオプションのところで 更新をしないと、外部シートの変更が反映されません。 どこがおかしいか分からず困っています。 「XPのせいでは?」とも言われましたが、 そうなのでしょうか? ぜひご回答よろしくお願いいたします。 下はソースでリンクを書いてある部分です <html lang="ja"> <head> <title>SAMPLE</title> <link rel="stylesheet"href="detail_2.css" type="text/css"> <script type="text/javascript"> </head>

    • ベストアンサー
    • HTML
  • CSSで、外部スタイルシートを2つ指定した場合。

    たとえば、 <link href="style.css" rel="stylesheet" type="text/css"> <link href="info.css" rel="stylesheet" type="text/css"> のように2つスタイルシートを指定した場合、同じ内容のスタイルシートを書き込んだ場合どちらが優先されるのでしょうか。

    • ベストアンサー
    • HTML