外联样式表没有效果,但是内联正常的解决方法

在做学校综合课程的大作业时遇到的问题

外联样式表没有效果,但是内联正常的解决方法

外联css不起作用但是内联样式表没问题时,可能是服务器端缓存导致样式不刷新了?反正解决方法是:

  1. 右键“刷新”按钮
  2. 点击“清空缓存并硬性重新加载” 步骤图解

<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所需要的!