上記の回答と他のいくつかのSO投稿を読んだ後、私は2つの解決策に到達しました。
Spring MVCを使用していて、DispatcherServlet
rootにマップされてい/
ます。これは、何かに対する要求はすべてそれを通過することを意味しますが、リソースファイルを提供するコントローラーがありません。あなたができることは、のDispatcherServlet
ようなものにマップすることです/app/*
。次に、次のようなすべての通常のURL
http:\\localhost:8080\ContextRoot\users
でアクセス可能になります
http:\\localhost:8080\ContextRoot\app\users
。
その後、に行くことができます
http:\\localhost:8080\ContextRoot\static\js\file.js
そして、Apacheサーバー(または使用しているもの)からリソースファイルが提供されます。
DispatcherServlet
Springの人たちはおそらくこれを問題と見なし、でマップされたままで独自の解決策を作成しました/
。servlet.xml
ファイルに追加する必要があります
<mvc:resources location = "/static/" mapping = "/static/**" />
あなたのフォルダstatic
はフォルダの下にありますwebapp
。このタグは、SpringMVCにに行くものすべてのための特別なハンドラーを持つように指示し/static/
ます。あなたも必要です
<mvc:annotation-driven>
そうしないと、Controllersハンドラーメソッドが前のタグのハンドラーと混同され、何も機能しなくなります(少なくとも私にとっては機能しませんでした)。
私はこれらの両方を試しましたが、両方とも機能しましたが、ビューのアンカーがルートにマップされていて、すべてを修正する気がなかったため、2番目のものを選びました。あなたのリンクを相対的なものにしてください、人々!