1

スタイルが次のように設定された.JSPページがあります。

<link rel="stylesheet" type="text/css" href="resources/styles/main.css" />

リンクに適しています。

  • localhost / webapp
  • localhost / webapp / dir

しかし、「localhost / webapp / dir / 0」を試してみると、404エラーコードが表示されます。

サーブレット-コンテキスト.xml

<mvc:resources mapping="/resources/**" location="/resources/" />
4

2 に答える 2

1

Nickdosの答えは正しいですが、私は通常、この問題を別の方法で解決します。BASEタグを利用できます。すべてのページのヘッドセクションで宣言すると、すべての相対リンク(<a href>)とリソース(<script>, <img>, ...)はこのhrefに基づきます。したがって、ELを使用すると、次のようなことができます(申し訳ありませんが、現時点では試すことができません)。

<base href="${request.scheme}://${request.serverName}:${request.serverPort}${request.contextPath}/" />

于 2012-09-05T09:19:11.393 に答える
1

パスは相対的であるため、JSP ページを異なる「深さ」でレンダリングすると、リンクは失敗します。これを回避するには、先頭にスラッシュを追加して絶対 URL パスを使用します。Spring/サーブレット コンテナーは、URL のコンテキスト部分を自動的に挿入できるため、「ROOT」Web アプリとしてデプロイした場合にアプリが機能します。これを行うには、<c:url>タグを使用できますが、次のように JSP コードを 1 行少なく書くことをお勧めします。

<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/resources/styles/main.css" />
于 2012-09-04T22:39:50.663 に答える