我正在使用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" />
答案 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" />