外部CSS不会加载到网页中

时间:2011-11-14 22:03:42

标签: css spring spring-mvc

我正在使用Spring和Tomcat 7.0开发Web应用程序。当我在浏览器中测试页面时,它不会应用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" />

3 个答案:

答案 0 :(得分:5)

你说css url是不可访问的(而不是它不适用于你的jsp)对吗?浏览/resources/dream.css时的响应是什么?

我之前遇到过tomcat没有使用/ * servlet映射提供静态内容的问题。我解决它的方法是在web.xml中显式映射每个内容类型,包括.css文件,如下所示:

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

(其中&#34;默认&#34; servlet由conf / web.xml中的tomcat预定义为org.apache.catalina.servlets.DefaultServlet)

答案 1 :(得分:1)

这实际上是一个路径问题。这是我的目录结构

MyProject的/ WEB-INF /资源/ dream.css 在jsp链接中,我把它作为href =&#34; /resources/dream.css"我甚至尝试过href =&#34; MyProject / resources / dream.css&#34;。

但是,我解决了它是我制作的目录结构 MyProject / resources / dream.css和 HREF =&#34; MyProject的/资源/ dream.css&#34;

答案 2 :(得分: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" />