SORU
21 Ocak 2011, Cuma


Nasıl bağlam kök adı dahil olmadan göreli yolları kullanmak için?

*2.* mutlak yolunu yazmam gerekiyor benim statik dosyası (CSS, JS) çalışma için style/main.css gibi göreli yol yazacağıma dair herhangi bir çözüm var mı?

CEVAP
21 Ocak 2011, Cuma


Eğergerçekendişe web içeriği (""bölümü) AppName, sadece almak HttpServletRequest#getContextPath() dinamik o zaman. dynamicness.

<head>
    <link rel="stylesheet" href="${pageContext.request.contextPath}/templates/style/main.css" />
    <script src="${pageContext.request.contextPath}/templates/js/main.js"></script>
</head>
<body>
    <a href="${pageContext.request.contextPath}/pages/foo.jsp">link</a>
</body>

${pageContext.request.contextPath} tekrar etmeye gerek yok, böylece tüm göreli bağlantıları için temel bir yol ayarlamak istiyorsanızhergöreli bağlantı <base> etiketini kullanın. İşte JSTL functions yardımıyla bir örnek.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
<head>
    <c:set var="url">${pageContext.request.requestURL}</c:set>
    <base href="${fn:substring(url, 0, fn:length(url) - fn:length(pageContext.request.requestURI))}${pageContext.request.contextPath}/" />
    <link rel="stylesheet" href="templates/style/main.css" />
    <script src="templates/js/main.js"></script>
</head>
<body>
    <a href="pages/foo.jsp">link</a>
</body>

Her bağın (yani . bu ^em>değil/ ya da düzeni) ile başlayan <base> göre olacak.

Bu arada özellikle herhangi bir şekilde Tomcat ile ilgili değildir. Sadece HTTP/HTML temelleri ile ilgili. Her diğer web sunucusu da aynı sorun olurdu.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Abe Olandres

    Abe Olandres

    16 EYLÜL 2006
  • Dan Gately

    Dan Gately

    13 AĞUSTOS 2006
  • Gavin Hoey

    Gavin Hoey

    21 Aralık 2007