2012-05-03 14 views
1

私はjavaを使い慣れていて、奇妙な問題があります。 WEB-INFフォルダにいくつかのフォルダ(theme、js、css)を作成し、このフォルダに自分のファイルを配置します。 はindex.jspの中で私は、次の方法でCSSファイルを使用します。それは良い作品WEB-INFフォルダに置かれたファイルにアクセスするにはどうすればいいですか?

<style type="text/css"> 
     <%@include file="WEB-INF/css/style.css" %> 
</style> 

#header{ 
background: url(../theme/violet/header.jpg) repeat-x; 
} 

ああ: はなく、のstyle.cssファイルには、私は以下の方法により、ヘッダータグの背景を設定するdivタグを持っています。私の問題はここにあります。それは動作しません。他のCSSコマンドがうまく機能しているからです。 私はWEB-INFの詳細にアクセスできないことを知っていますが、index.jspページのlink.cssに使用する方法があるかもしれません。

どのような解決策ですか?ありがとう。

+0

このフォルダ内にWEB-INFのcssフォルダを追加してください。このフォルダ内に画像フォルダを追加し、そこにheader.jpgを入れてください。あなたのイメージは、background.css - 背景のために利用可能になります:url(images/header.jpg)repeat-x; btwこの画像は外部の誰でも利用できます(URLの正確なパスが正確であれば)。しかし、tomcatのようなサーバーやアプリケーションコンテナによって保護されているため、フォルダイメージやCSSは表示されません。 /web.xml)。 context.xml内のTomcatも貴重なリソースを監視しています – blueberry0xff

答えて

2

style.cssを含める方法から、あなたのindex.jspがクライアントブラウザによって直接アクセスできるWEB-INFフォルダの外にあると思います。含まれているstyle.cssがうまく動作する理由は、それがサーバー側に含まれているためです。しかし、style.cssでは、背景イメージを取得するために、ブラウザはWEB-INFフォルダ内にある新たなイメージへの接続を開始し、サーバはそれを送り返すことを拒否し、あなたは破滅します。

セントラルコントローラサーブレットを使用している場合は、jspをWEB-INFフォルダ内に配置して、直接アクセスできないようにすることができます。サーブレットは、要求パラメータに従って、すべての要求を適切なJSPにリダイレクトします。

このフォルダ内に画像、JavaScriptなどを置く絶対的な理由はありませんが、ブラウザがこのフォルダにアクセスしてデータを取得する必要がある場合は、間違いなく問題に遭遇します。

1

これはできません。コンテンツをブラウザから直接アクセスできるようにするには、WEB-INFの内部に置くことはできません。

+0

あなたの答えの意味は何ですか?あなたは私のリソースファイルをWEB-INFの外に置いたほうがいいでしょうか?したがって、どのように私のJSPファイルは、CSSファイルにアクセスできますが、CSSファイルは画像ファイルにアクセスできませんか?あなたの答えのmeaninigは、WebブラウザのCSSファイル処理ですか? – rasoul

+0

リソース(header.jpgなど)にブラウザなどのクライアントからアクセスできるようにするには、ブック内のWEB-INF –

0

なぜtheme, js, cssWEB-INFフォルダに作成しますか? WEB-INFディレクトリには、アプリケーションに関するメタデータが格納されています。通常の操作では、WEB-INFディレクトリの下にあるものを変更する必要はありません。

warまたはWebContentディレクトリの下に直接theme, js, cssフォルダを作成すると、jspページで簡単に使用できます。

thisリンクはお役に立ちます。

+0

内に配置することはできません。彼はウェブサイト用の構造を提供しています。著者はあなたのCSS、テーマ、js、およびtldをWEB-INFに入れておいた方が良いと言います。もちろんWEB-INFのすべてのデータはユーザーからはアクセスできませんが、WebサーバーはCASが使用するクラスを許可しています(おそらく、クラスで使用できると言うでしょう。 – rasoul

関連する問題