【问题标题】:${pageContext.request.contextPath} is not working on plain HTML${pageContext.request.contextPath} 不适用于纯 HTML
【发布时间】:2013-08-24 01:01:39
【问题描述】:

我正在使用 tomcat 7.0。现在我面临一个无法加载 css 和 js 文件的问题。尝试添加 ${pageContext.request.contextPath} 但不起作用,还尝试了 c:url 标记,但在 eclipse 中出现语法错误。

这些文件的结构是:

网页内容
-content/css/lab3.css
html 和 js 文件夹也在 content 文件夹下

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>lab3</display-name>
  <welcome-file-list>
    <welcome-file>/content/html/lab3.html</welcome-file>
  </welcome-file-list>
</web-app>

这里是html头:

<link rel="stylesheet" type= "text/css" href= "${pageContext.request.contextPath}/css/lab3.css"  media="screen, projection">

【问题讨论】:

  • ${pageContext.request.contextPath} 之类的表达式不能在纯 HTML 文件中使用,它们必须在 JSP 文件中使用。我建议你先阅读一些关于 Java servlet 和 JSP 的教程。
  • @DavidLevesque 好的,那么在纯 HTML 文件中,我应该如何访问该位置?
  • 可以使用相对路径,例如:href="../css/lab3.css"

标签: tomcat el


【解决方案1】:

EL expressions ${} 不在纯 HTML 文件中运行。它仅在JSP(和Facelets)文件中运行。在您的特定情况下,只需将lab3.html 重命名为lab3.jsp,或将以下JSP servlet 映射添加到web.xml:

<servlet-mapping>
    <servlet-name>jsp</servlet-name> <!-- This is the default servlet name of Tomcat's own JSP servlet. To be sure, look in Tomcat's own web.xml for the exact name. -->
    <url-pattern>*.html</url-pattern>
</servlet-mapping>

这将告诉 Tomcat 将所有 .html 文件视为 JSP 文件,因此 EL 将立即在 .html 文件中工作。

如果以上都不是可接受的解决方案,那么您需要回归逻辑思维并正确理解和使用相对路径。与本地磁盘文件系统一样,../ 在 URL 中为您提供一个文件夹。如果 HTML 文件在 /content/html/lab3.html 并且 CSS 文件在 /content/css/lab3.css 中,那么应该执行以下操作:

<link ... href="../css/lab3.css" />

【讨论】:

    【解决方案2】:

    使用 ${request.contextPath} 而不是 ${pageContext.request.contextPath}

    【讨论】:

      猜你喜欢
      • 2019-08-06
      • 2017-11-13
      • 2011-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-10
      • 1970-01-01
      • 2012-10-29
      相关资源
      最近更新 更多