如何让我的JSP在Spring MVC中找到我的CSS文件?

时间:2012-10-10 16:29:56

标签: jsp spring-mvc

我对Web开发相对较新,我正在尝试使用WebLogic 10.3.4上的Spring MVC 3.0.5开发Web应用程序。

我希望我的JSP使用外部CSS文件。例如,我有一个包含以下内容的JSP文件:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<LINK href="${pageContext.request.contextPath}/resources/css/ptostyles.css" rel="stylesheet" type="text/css">

<title>Register</title>
</head>

不幸的是,CSS文件似乎没有被加载。我试过把它放在各个地方。当前目录结构如下所示:

enter image description here

我的web.xml的相关部分包括:

<servlet>
    <servlet-name>springDispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/config/spring-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>springDispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>Resource Servlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.ResourceServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Resource Servlet</servlet-name>
    <url-pattern>WebContent/*</url-pattern>
</servlet-mapping>

非常感谢任何建议,包括调试策略!

2 个答案:

答案 0 :(得分:4)

我设法通过执行以下操作来访问我的CSS:

  1. 我按照建议直接在WebContent下移动了我的资源文件夹 由肖恩
  2. 我注释掉了涉及到的web.xml部分 ResourceServlet。
  3. 我将以下行添加到spring-context.xml

    <mvc:resources mapping="/resources/**" location="/resources/" />
    
  4. article讨论了可能适用于WebLogic部署的一些其他问题和解决方法。在Spring 3.0.5的实现中似乎存在bug,这可能导致提供静态资源的问题。

答案 1 :(得分:1)

WEB-INF文件夹下没有任何内容可公开获取。当浏览器请求您的CSS文件时,他们无法在WEB-INF文件夹中看到。

尝试将您的resources / css文件夹放在WebContent下。

文件夹结构将是

WebContent
   META-INF
   WEB-INF
      ...
   resources
      css
        ptostyles.css