问题概述
当我在jsp里面加入了一个外部的css文件时,点击f12,发现该css文件报出404错误。
原代码:
<link rel="stylesheet" href="/style/layuimini/lib/layui-v2.5.5/css/layui.css" media="all">
解决方法
1.拦截器拦截相关url
首先,我去看了一下拦截器是否有对style网页进行放行,后来发现我竟然没有放行,于是就添加上了style的url进行放行。
public void doFilter(ServletRequest servletRequest,ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {
HttpServletResponse hsp=(HttpServletResponse)servletResponse;
HttpServletRequest hsr=(HttpServletRequest)servletRequest;
String url = hsr.getRequestURI();
if(url.contains("style") //补充这里
||url.contains("regist")
||url.contains("login")){
//静态资源和不需要过滤的url直接放行,去执行下一个过滤器
filterChain.doFilter(servletRequest,servletResponse);
//其他业务这里就不写了
}
}
2.link标签的没有动态url
这个问题我是查了很多地方才发现的。
404错误通常是因为url的问题,我排查了我文件放置位置以后(ctrl+左键能跳转),我才知道,jsp中引入css地址需要一个动态的url,否则将会引入失败。
<link rel="stylesheet" href="<%=request.getContextPath()%>/style/layuimini/lib/layui-v2.5.5/css/layui.css" media="all">
注意,如果不补充<%=request.getContextPath()%> ,将会一直报错。