【发布时间】:2019-09-06 14:06:01
【问题描述】:
我在使用 tomcat 时遇到了一些问题。由于某种原因 tomcat 无法加载我的样式表。链接在 head.jsp 中定义,我在所有需要样式表的 jsps 中使用 include 指令包含此文件.我发现当我使用request.getRequestDispatcher(...)从Servlet调度到Jsp时会出现这个问题。当我直接访问同一个文件时,样式表正常加载。
图片1:
图片2:
图片3:
图片4:
【问题讨论】:
我在使用 tomcat 时遇到了一些问题。由于某种原因 tomcat 无法加载我的样式表。链接在 head.jsp 中定义,我在所有需要样式表的 jsps 中使用 include 指令包含此文件.我发现当我使用request.getRequestDispatcher(...)从Servlet调度到Jsp时会出现这个问题。当我直接访问同一个文件时,样式表正常加载。
图片1:
图片2:
图片3:
图片4:
【问题讨论】:
您缺少项目的上下文路径。
案例 1:假设您当前的 URL 是 http://localhost:8585/project_name/
然后包括样式表与```href = "css/style.css"```
==> http://localhost:8585/project_name/css/style.css
案例 2:假设您当前的 URL 是 http://localhost:8585/project_name/users
然后包括样式表与```href = "css/style.css"```
==> http://localhost:8585/project_name/users/css/style.css
404错误
所以使用上下文路径作为前缀,在包含 javascript 或样式表的同时使用上下文路径使用 JSTL 标记库和 url 标记 来实现它,如下所示。
包括 JSTL
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
使用下面给出的 jstl url 标签包含样式表或脚本
<link rel="stylesheet" href="/css/style.css" />" >
【讨论】:
../ 强制相对路径向上一个文件夹。所以它会将样式表网址设为localhost:8585....