2011-11-14 75 views
2

我正在開發一個使用Spring和Tomcat 7.0的Web應用程序。當我在瀏覽器中測試頁面時,它不應用CSS,因爲它無法加載外部樣式表。外部CSS不加載網頁

這裏是我的各種文件

的web.xml

<?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_2_5.xsd" id="WebApp_ID" version="2.5"> 
    <display-name>MyProject</display-name> 
    <servlet> 
     <servlet-name>dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet> 
    <servlet-name>ResourceServlet</servlet-name> 
    <servlet-class>org.springframework.js.resource.ResourceServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 


    <servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>*.htm</url-pattern> 
    </servlet-mapping>  
    <servlet-mapping> 
    <servlet-name>ResourceServlet</servlet-name> 
    <url-pattern>/resources/*</url-pattern> 
</servlet-mapping> 

    <welcome-file-list> 
     <welcome-file>redirect.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 

調度-servlet.xml中

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
http://www.springframework.org/schema/mvc 
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 

    <bean id="viewResolver" 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver" 
     p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" /> 

    <bean id="userService" class="com.abdus.service.UserServiceImpl" /> 

    <context:component-scan base-package="com.abdus.web" /> 
    <bean 
     class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" /> 
    <bean 
     class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> 

</beans> 

,這是從JSP頁面頭部

welcomePage.jsp

<meta charset="utf-8"/> 
    <title>Welcome</title> 
    <link rel="stylesheet" href="/resources/dream.css" type="text/css" /> 
+0

你肯定全類名ResourceServlet。我相信它是org.springframework.web.servlet.ResourceServlet(在Spring 3.x和Spring 2.5中)。 – DwB

+0

如果我使用org.springframework.web.servlet.ResourceServlet,我得到以下異常 –

回答

5

你說的CSS網址無法訪問(而不是它不是適用於你的jsp)對不對?當你瀏覽到/resources/dream.css時有什麼反應?

我以前遇到過問題,因爲tomcat沒有爲/ servlet映射提供靜態內容。我的方式解決它明確地映射在web.xml中的每個內容類型,包括.css文件,就像這樣:

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.css</url-pattern> 
</servlet-mapping> 

(這裏的「默認」的servlet是通過在Tomcat的conf/web.xml中預先定義爲org.apache.catalina.servlets.DefaultServlet)

0

您可以使用JSTL標籤:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<link href="<c:url value="/resources/style.css"/>" rel="stylesheet" type="text/css" /> 

或者你可以使用完整的資源路徑:

<base href="http://localhost:8080/myapp/" /> 
<link href="resources/style.css" rel="stylesheet" type="text/css" /> 
1

這實際上是一個路徑問題。這是我的目錄結構

MyProject的/ WEB-INF /資源/ dream.css 和JSP中的鏈接我給了它作爲HREF = 「/資源/ dream.css」 我甚至嘗試了HREF =「MyProject的/資源/dream.css」。

但我解決它的WASY是我做的目錄結構 MyProject的/資源/ dream.css和 HREF =「MyProject的/資源/ dream.css」