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