En Java, les applications Web sont regroupées dans des WAR. Par défaut, de nombreux conteneurs de servlets utilisent le nom du WAR comme nom de contexte pour l'application.
Ainsi, myapp.war est déployé dans http://example.com/myapp .
Le problème est que la webapp considère que sa "Racine" est, eh bien, "Racine", ou simplement "/", alors que HTML considérerait que la Racine de votre application est "/myapp".
L'API Servlet et JSP disposent de fonctions permettant de gérer cette situation. Par exemple, si, dans une servlet, vous faites : response.sendRedirect("/mypage.jsp"), le conteneur ajoutera le contexte et créera l'url : http://example.com/myapp/mypage.jsp ".
Cependant, vous ne pouvez pas le faire avec, par exemple, la balise IMG en HTML. Si vous faites <img src="/myimage.gif"/>, vous obtiendrez probablement un message 404, car ce que vous vouliez vraiment était "/myapp/myimage.gif".
De nombreux frameworks ont des balises JSP qui sont également sensibles au contexte, et il existe différentes manières de créer des URL correctes dans JSP (aucune n'est particulièrement élégante).
C'est un problème délicat pour les codeurs que de savoir quand utiliser une url "App Relative" ou une url absolue.
Enfin, il y a la question du code Javascript qui doit créer des URL à la volée, et des URL intégrées dans les CSS (pour les images d'arrière-plan et autres).
Je suis curieux de savoir quelles techniques les autres utilisent pour atténuer et contourner ce problème. Beaucoup se contentent de le coder en dur, soit pour le serveur Root, soit pour le contexte qu'ils utilisent. Je connais déjà la réponse, ce n'est pas ce que je recherche.
Que faites-vous ?