Comment ajouter <%= request.getContextPath() %> à toutes les URL relatives dans une page jsp ?
Question
Le sujet dit presque tout.Comment puis-je corriger automatiquement les pages jsp afin que les URL relatives soient mappées sur le chemin contextuel au lieu de la racine du serveur ?C'est-à-dire, étant donné par exemple
<link rel="stylesheet" type="text/css" href="/css/style.css" />
comment puis-je configurer les choses de manière à mapper le CSS à my-server/my-context/css/style.css
au lieu de my-server/css/style.css
?Existe-t-il un moyen automatique de le faire, autre que de changer toutes les lignes comme ci-dessus en
<link rel="stylesheet" type="text/css"
href="<%= request.getContextPath() %>/css/style.css" />
La solution
Regardez dans le <BASE HREF="">
étiqueter.Il s'agit d'une balise HTML qui signifie que tous les liens de la page doivent commencer par votre URL de base.
Par exemple, si vous avez spécifié <BASE HREF="http://www.example.com/prefix">
et puis j'ai eu <a href="/link/1.html">
alors le lien devrait en fait vous amener à /prefix/link/1.html.Cela devrait également fonctionner sur <LINK>
(feuille de style) balises.
Autres conseils
Le meilleur moyen consiste à utiliser HttpServletResponse.encodeURL () pour construire l'URL appropriée
.