filter导致css无效的解决办法

首先要确定是由filter引起的css无效

浏览器中调试网页,按F12打开开发者工具
然后如果在console中出现这样一行警告

Resource interpreted as Stylesheet but transferred with MIME type text/html:

那大概就是因为filter的问题导致的


解决办法
把filter中涉及response.setContentType(“text/html;charset=UTF-8”);的地方替换成这样

//前面需要 import javax.servlet.http.HttpServletRequest;
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		// TODO Auto-generated method stub
		// place your code here
		HttpServletRequest req = (HttpServletRequest)request;
		String requestURI = req.getRequestURI();
		if(requestURI.contains(".css")||requestURI.contains(".js")) {
			request.setCharacterEncoding("UTF-8");
			response.setCharacterEncoding("charset=UTF-8");//这样会把CSS文件和JS文件转化为html文件,但是在if中排除了
			chain.doFilter(request, response);
		}
		else {
			request.setCharacterEncoding("UTF-8");
			response.setContentType("text/html;charset=UTF-8");//这样会把CSS文件和JS文件转化为html文件,但是在if中排除了
			chain.doFilter(request, response);
		}
	}

你可能感兴趣的:(Java,css,filter)