在做学校综合课程的大作业时遇到的问题
外联样式表没有效果,但是内联正常的解决方法
外联css不起作用但是内联样式表没问题时,可能是服务器端缓存导致样式不刷新了?反正解决方法是:
- 右键“刷新”按钮
- 点击“清空缓存并硬性重新加载”
<c:url>
标签
- 标签中的value属性如果以
/
开头,则标签会在重新生成的URL中加上当前Web应用的根路径。
例子
- 如果你想在login.jsp(路径是
goods/WebRoot/jsps/user/login.jsp
)里面外联样式表goods/WebRoot/jsps/css/user/login.css
,但当前web应用的根路径是http://localhost:8080/goods
,所以要想使用login.css
要用<link rel="stylesheet" type="text/css" href="<c:url value='/jsps/css/user/login.css'/>">
,他会自动在前面补上当前web应用的路径,也就相当于goods/WebRoot/jsps/css/user/login.css
了。 - 如果不这样写的话,经过UserServlet刷新以后有可能读不到外联的样式表。(因为经过请求转发以后路径变了,依照普通的写法就读不到我们想要的样式表了,这个时候就要借助
<c:url>
标签) - 在通常情况下,我们的JSP和这些资源文件的引入都是正常的,也就是说浏览器在解析页面的时候可以通过路径找到这些资源文件;而当我们在内部Servlet处理页面传回来的数据的时候,如果我们进行了请求转发,并且请求转发给了JSP(嵌入JAVA代码的JSP页面可以看成是一个Servlet),最后由JSP返回页面数据,那么这个过程是纯服务端操作,在客户端浏览器并不知情;
- 通俗点说,即假设A与B不在一个路径下且其外部资源路径都与自己同目录下存放,浏览器向A发起了一个请求,A不想干,让B去干,然后由B返回给浏览器结果,但是浏览器以为还是A发来的,这个时候浏览器还是把A所需要的外部资源给B,结果发现不是B所需要的!