【问题标题】:Absolute url in jspjsp中的绝对网址
【发布时间】:2023-03-19 04:17:02
【问题描述】:

在我的 jsps 中包含 css、js 和图像时,我在解析相对 url 时遇到了问题。刷新页面或单击后退按钮时,网址会发生变化。我想该问题的一种解决方案是使用绝对 url 包含外部文件。但我不知道如何使用对相对 url 的引用并使用它。谁能帮我解决这个问题?

【问题讨论】:

    标签: jsp url jsf


    【解决方案1】:

    回答了这个老问题,因为绝对 URL 对使用反向代理的 javascript 很有用。同样适用于 href 。然而,在我们的例子中,反向代理负责处理 href url,因此相对路径可以正常工作。

    要获得原始问题的绝对网址,请尝试以下操作:

    <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
    <link rel="stylesheet" href="${fn:replace(pageContext.request.requestURL, pageContext.request.requestURI, pageContext.servletContext.contextPath)}/style/style.css" rel="stylesheet" type="text/css" />
    

    replace 函数采用 requestURL 即:http://mydomain.com/context-path/index.html

    并替换requestURI:/context-path/index.html

    只有上下文路径:/context-path

    导致:http://mydomain.com/context-path

    然后附加所需的资源:/style/style.css

    【讨论】:

      【解决方案2】:

      这是你要找的吗?

      ${pageContext.servletContext.contextPath}
      

      然后在你的jsp中:

      <link rel="stylesheet" href="${pageContext.servletContext.contextPath}/css/page.css"   media="all"    type="text/css" />
      

      【讨论】:

        【解决方案3】:

        这也可行,并且可能更易于阅读,并且具有一些额外的好处,例如正确转义和可选包含参数

        &lt;link href="&lt;c:url value="/style/style.css"/&gt;" rel="stylesheet" type="text/css" /&gt;

        【讨论】:

          猜你喜欢
          • 2010-10-28
          • 2019-06-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多