6

私はibmwebsphereを使用しており、動的Webプロジェクトを作成しています。すべてのJSPファイルはWEB-INFフォルダーにあり、ファイル内のサーブレットマッピングを使用して web.xmlファイルにアクセスできるようにしています。これは今のところうまく機能しています。ただし、CSSに問題があります。いつものように、私のCSSファイルはWebContentcssという名前のフォルダーにあります。ここに私のリンクがありますjsp

<link rel="stylesheet" href = "css/styles.css">

私は自分のCSSを表示することができません...私は
何が欠けていますか?

4

2 に答える 2

13

生成されたHTML出力の相対URLは、サーバーのディスクファイルシステム内の物理的な場所ではなく、要求URL(ブラウザーのアドレスバーに表示される)を基準にして解釈されるブラウザーによって作成されます。つまり、HTTPリクエストによってそれらをダウンロードする必要があるのはWebブラウザーであり、何らかの方法でディスクからそれらを含める必要があるのはWebサーバーではありません。

方法の1つは、これらのリソースにドメイン相対パスを使用することです。つまり、で始まり/ます。を使用${pageContext.request.contextPath}して、現在のWebアプリケーションのコンテキストパスを動的にインライン化できます。

<link rel="stylesheet" href="${pageContext.request.contextPath}/css/styles.css">

これは、次のように生成されたHTML出力になります。

<link rel="stylesheet" href="/yourContextPath/css/styles.css">

このようにして、ブラウザはそれらを適切にダウンロードできるようになります。

参照:

于 2012-04-27T17:53:32.510 に答える
0

ブラウザの観点から、ページのURL、コンテキストパス、現在のパスを確認する必要があると思います。

アプリのコンテキストパスがたとえば「myApp」の場合、次のようにして機能させることができます。

<link rel="stylesheet" href = "/myApp/css/styles.css">

コンテキストパスに依存しないように相対的なものにしたい場合、URLがhttp:// localhost:8080 / myApp / myservlet/file.jspのようになっている場合

次に、リンクタグは次のようになります

<link rel="stylesheet" href = "../css/styles.css">

FirebugまたはChromeコンソールは、ブラウザが何を取得しようとしているのかを理解するのに非常に役立つ場合があります。

お役に立てれば!

于 2012-04-27T17:40:51.900 に答える