0

Tomcat インストールにデプロイされる war (foo.war) ファイルがあり、Tomcat はファイルを適切に認識して展開し、 を使用してサイトにアクセスできますがhttp://localhost:8080/foo、先頭にスラッシュを使用するパス (つまり/bar/test.js)http://localhost:8080パスではなく、パスからそれを参照しようとしhttp://localhost:8080/fooます。スラッシュで始まらないパスは正常にbar/test.js機能します。私はこれを1時間ほどグーグルでいじっていますが、今のところ何も思いつきません. この種の問題をデバッグするための正しい手順が何であるかさえわかりません。これに関連するログには何も表示されず、構成ファイルを調べましたが、何も飛び出していません。

なぜこれが起こっているのかを確認するために何を見るべきかについての有益な指針はありますか?

編集: 他の人が提起したいくつかの良い点に応えて、スラッシュで始まるパスは絶対パスであり、ホストに基づいていることを当初は理解していましたが、この質問に対する答え (絶対パス & Relative Path ) 別の方法で述べられているため、質問をしました。

4

1 に答える 1

1

aで始まらないものはすべて/、現在の場所を基準としています。で始まるもの/すべて、ホストのルートです。したがって、あなたの説明で何かを見逃していない限り、あなたが見ている動作は正しいです.

...スラッシュで始まるパスは絶対パスであり、ホストに基づいています

それは正解です。

コンテキストルートを含む適切なURLを作成する方法を求めていませんでした(fooあなたの例では)? JSP を使用している場合、答えはこちらになります: https://stackoverflow.com/a/4764586/131929

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

個人的にはJSTL <c:url>タグが好きです。

<link type="text/css" rel="stylesheet" href="<c:url value="/css/style.css" />" />

コンテキストのルート/パスを追加するだけでなく、さらにいくつかの機能を提供します。

于 2013-06-04T21:08:36.467 に答える