1

私のアプリケーションでは、jsps フォルダー内のすべての jsp ページで、index.jsp にパスを指定します<% response.sendRedirect(response.encodeRedirectURL("/Projectname/jsps/main.jsp")); %> 。main.jsp は表示されますが、ロゴ、グラフィックスなどは表示されません。jsp および WEB と並行する js フォルダー内のすべての js およびロゴ ファイル-INF フォルダー。現在の構造は次のとおりです: ProjectName>WebContent>Company1,WEB-INF,index.jsp,jsps>ここにすべての jsp

いくつかのCSSファイルを持つCompany1フォルダーにありますが、グラフィックは表示されません。すべてのjspがCompany1フォルダーにある場合は正常に機能します。

4

1 に答える 1

3

あなたがそれを呼ぶ「グラフィックス」(画像、CSSなど)は、Webサーバーにはロードされませんが、単純なHTTPリクエストによってWebブラウザにロードされます。相対 URL は、サーバー側のフォルダー構造ではなく、現在の要求 URL (ブラウザーのアドレス バーに表示される) に対して相対的です。

正しい相対 URL を把握するには、JSP ページとイメージ ファイルの両方の絶対 URL を知る必要があります。たとえば、 http://example.com/jsps/page.jsphttp://example.com/images/image.gif。その場合、JSP ページとは対照的に、画像への相対 URL は 1 つ上のフォルダーとファイル名になります。../images/image.gif代わりに、先頭のスラッシュで始まるドメイン相対 URL を使用することもできます: /images/image.gif.

のような CSS 背景画像を使用している場合selector { background: url('foo.gif'); }、これらの URL は、CSS ファイルを含む JSP ページではなく、CSS ファイル自体の URL に対して相対的であることを知っておく必要があります。

うまくいかない場合は、質問を更新して、JSP ページと画像ファイルの両方の絶対 URL を含めてください。正しい相対 URL を抽出するお手伝いをします。

于 2010-10-27T13:12:11.207 に答える