В Java веб-приложения включены в WAR. По умолчанию многие контейнеры сервлетов будут использовать имя WAR в качестве имени контекста для приложения.
Таким образом, myapp.war развертывается в http://example.com/myapp.
Проблема в том, что webapp считает, что его "корень" - это "корень" или просто "/", тогда как HTML рассмотрит корень вашего приложения как "/myapp".
В API-интерфейсе Servlet и JSP есть средства для управления этим. Например, если в сервлете вы выполните: response.sendRedirect( "/mypage.jsp" ), контейнер добавит контекст и создаст URL-адрес: http://example.com/myapp/mypage.jsp".
Однако вы не можете сделать это, скажем, с тегом IMG в HTML. Если вы делаете < img src="/myimage.gif "/" > , вы, скорее всего, получите 404, потому что то, что вы действительно хотели, было "/myapp/myimage.gif".
Многие фреймворки имеют теги JSP, которые также знакомы с контекстом, и есть разные способы создания правильных URL-адресов в JSP (ни один из них не особенно элегантен).
Это проблема для кодировщиков, чтобы перейти от того, когда использовать URL-адрес приложения "Относительный", по сравнению с абсолютным URL-адресом.
Наконец, есть проблема с кодом Javascript, который должен создавать URL-адреса "на лету" и встроенными URL-адресами в CSS (для фоновых изображений и т.п.).
Мне любопытно, какие методы используют другие, чтобы смягчить и обойти эту проблему. Многие просто punt и жестко кодируют его, либо в корне сервера, либо в любом контексте, который они используют. Я уже знаю этот ответ, это не то, что я ищу.
Чем вы занимаетесь?