Wie stelle ich <%= request.getContextPath() %> allen relativen URLs innerhalb einer JSP-Seite voran?
Frage
Das Thema sagt fast alles.Wie korrigiere ich JSP-Seiten automatisch, sodass relative URLs dem Kontextpfad und nicht dem Serverstamm zugeordnet werden?Das ist zum Beispiel gegeben
<link rel="stylesheet" type="text/css" href="/css/style.css" />
Wie richte ich Dinge so ein, dass sie dem CSS zugeordnet werden? my-server/my-context/css/style.css
anstatt my-server/css/style.css
?Gibt es eine automatische Möglichkeit, dies zu tun, außer alle Zeilen wie oben in zu ändern?
<link rel="stylesheet" type="text/css"
href="<%= request.getContextPath() %>/css/style.css" />
Lösung
Schauen Sie in die <BASE HREF="">
Etikett.Dies ist ein HTML-Tag, was bedeutet, dass alle Links auf der Seite mit Ihrer Basis-URL beginnen sollten.
Zum Beispiel, wenn Sie angegeben haben <BASE HREF="http://www.example.com/prefix">
und dann hatte <a href="/link/1.html">
dann sollte der Link Sie tatsächlich zu /prefix/link/1.html führen.Das sollte auch funktionieren <LINK>
(Stylesheet-)Tags.
Andere Tipps
Der bessere Weg ist zu HttpServletResponse.encodeURL (), die die URL? Fall konstruieren wird