在编写静态页面时,CSS解析没问题;换成jsp之后样式完全丢失。造成这个的原因是,CSS写的相对路,
<link href="../css/notification.css" rel="stylesheet" type="text/css" />
而这个相对路径是按照jsp文件的当前位置写的。但是,在转换成JSP之后,实际上是使用GET方式直接访问的后台的Servlet。在处理了逻辑之后,才在后台做了一次转发,将jsp展现出来
//请求转发
req.getRequestDispatcher("/webapp/jsp/notification.jsp").forward(req, resp);
(其中webapp位于web目录下)即
所以,此时的相对路径,应该是相对于当前的servlet的位置,而servlet实际上与web目录(有的也是webroot等)是同级的。所以想改为
<link href="https://my.oschina.net//hyb007/blog/733792/webapp/css/notification.css" rel="stylesheet" type="text/css" />
特别注意,这里的 “.”符号很重要。
也可以写绝对路径,则只需要在
<link href="<%=basePath%>webapp/css/notification.css" rel="stylesheet" type="text/css" />
你的路径中添加 <%basePath%>即可。