- 異常信息:
Resource interpreted as Stylesheet but transferred with MIME type text/html:
- 可能原因
過濾器或者某個地方對所有的資源請求全部轉為了text/html
- 檢查方式
利用瀏覽器查看請求頭和響應頭
- 主要檢查請求頭和響應頭的content type
樣式表應是text/css,並且向服務器發送請求和之后服務器對客戶端的響應都應該是text/css;
我個人在項目中遇到的問題就是利用過濾器對所有請求進行編碼統一時,將css文件也進行了處理
修改之前的過濾器代碼為
System.out.println("**********AllFilter開始工作*********"); HttpServletRequest request=(HttpServletRequest)req; HttpServletResponse response=(HttpServletResponse)res; response.setCharacterEncoding("text/html; charset=UTF-8");
- 處理方法
應該對請求進行分類,當為一些css等一類文件就以原來的方式請求進行,不做處理,其它的請求再作處理,修改后代碼如下:
System.out.println("**********AllFilter開始工作*********"); HttpServletRequest request=(HttpServletRequest)req; HttpServletResponse response=(HttpServletResponse)res; String url=request.getRequestURI(); System.out.println("url:" +url); if(url.indexOf(".css")>0||url.indexOf(".js")>0||url.indexOf(".png")>0) { chain.doFilter(request, response); return; } response.setContentType("text/html;text/html; charset=UTF-8");