リンクURLの前に、によって取得されたコンテキストパスを含むドメイン相対パスを追加する必要がありますHttpServletRequest#getContextPath()
。私はScalaを使用していないので、Scalaをターゲットにした答えを出すことはできませんが、JSPでそれを実行して、画像が健全になるようにする方法は次のとおりです。
<a href="${pageContext.request.contextPath}/servlet">link</a>
現在のコンテキストパスが/foo
、の場合、上記はHTMLで次のようになります。
<a href="/foo/servlet">link</a>
または、サーブレットクラス内でJavaを使用してプログラムでHTMLを生成している場合(これは実際には不適切な方法ですが、それは別として):
out.println("<a href=\"" + request.getContextPath() + "/servlet\">link</a>");
別の方法は、すべての相対リンクが相対リンクになるようにHTMLでタグを設定する<base>
ことです。詳細については、この回答も参照してください。ブラウザは、サーブレットに転送するサーブレットを呼び出すときに、CSS、画像、リンクなどの相対リソースにアクセス/検索できません。 JSP