今天寫css的時候,突然css的效果無法展示,使用過以下方法:
1.使用絕對路徑
如:
href="<%=request.getContextPath()%>/style/main.css"
2.使用相對路徑
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
href="<%=basePath%>style/main.css"
都未解決,事實上,檢視源代碼也證明路徑未錯,突如其來,實在糾結.
最後使用内聯元素可行,但是項目要求引用外部css和js,經過長期思索,發現是過濾器的問題:
@WebFilter("/*")
一不小心,屏蔽了所有請求,當然也包括css和js.
解決方案
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) {
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
boolean isValid = true;
String uriStr = httpRequest.getRequestURI();
//省略若幹
if(uriStr.indexOf("style")!=-1)
chain.doFilter(request, response);