为什么以前写的 图书后台管理系统 的css样式加载不出来?

为什么以前写的 图书后台管理系统 的css样式加载不出来?

http://img1.sycdn.imooc.com//climg/5ea6f6d309aa971619200945.jpg


http://img1.sycdn.imooc.com//climg/5ea6f7030987201b06050403.jpg

http://img1.sycdn.imooc.com//climg/5ea6f78c09c5850107030069.jpg

http://img1.sycdn.imooc.com//climg/5ea6f81f0919090904060128.jpg


http://img1.sycdn.imooc.com//climg/5ea6f897092452f319190980.jpg

一直用的是谷歌浏览器,浏览器没变啊,而且清除浏览器缓存后,css样式还是加载不出来。

上网查了一下解决办法,把 <!DOCTYPE html> 这个表头去掉,但是登录表单怎么会跑到浏览器窗口的下面去了?

以前这个项目能正常显示。

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
提问者 电磁护盾 2020-04-28 11:23:58
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package com.imooc1.web.filter;
 
import java.io.IOException;  
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import com.imooc1.domain.User;
 
 
@WebFilter("/AuthFilter")
public class AuthFilter implements Filter {
 
    public AuthFilter() {
        // TODO Auto-generated constructor stub
    }
 
 
    public void destroy() {
        // TODO Auto-generated method stub
    }
 
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        // TODO Auto-generated method stub
        System.out.println("过滤器已生效");
         
        String str=((HttpServletRequest) request).getRequestURI().toString();
        System.out.println(str+"<————————");
        if(str.indexOf(".css")>0||str.indexOf(".jpg")>0||str.indexOf(".png")>0||str.indexOf("login")>0||str.indexOf("LoginServlet")>0||str.indexOf("UserService")>0||str.indexOf("CheckImgServlet")>0) {
            System.out.println("过滤器已生效A");
            chain.doFilter(request, response);
            return;
        }else {
            User user= (User) ((HttpServletRequest) request).getSession().getAttribute("existUser");
            if(user==null||"".equals(user)) {
                System.out.println("过滤器已生效B");
                // 未登录
                request.setAttribute("msg1""用户未登陆");
                ((HttpServletResponse)response).sendRedirect(((HttpServletRequest) request).getContextPath()+"/login.jsp");
                return;
            }else {
                System.out.println("过滤器已生效C");
                chain.doFilter(request, response);
                return;
            }
        }
 
         
//      if(str.indexOf(".css")>0||str.indexOf(".jpg")>0||str.indexOf(".png")>0||str.indexOf("login")>0||str.indexOf("LoginServlet")>0||str.indexOf("UserService")>0||str.indexOf("CheckImgServlet")>0) {
//          System.out.println("过滤器已生效A");
//          chain.doFilter(request, response);
//          return;
//      }
//      User user= (User) ((HttpServletRequest) request).getSession().getAttribute("existUser");
//      if(user==null||"".equals(user)) {
//          System.out.println("过滤器已生效B");
//          // 未登录
//          request.setAttribute("msg1", "用户未登陆");
//          ((HttpServletResponse)response).sendRedirect(((HttpServletRequest) request).getContextPath()+"/login.jsp");
//          return;
//      }else {
//          System.out.println("过滤器已生效C");
//          chain.doFilter(request, response);
//          return;
//      }
    }
 
    public void init(FilterConfig fConfig) throws ServletException {
        // TODO Auto-generated method stub
    }
}

那些都放行了,过滤器代码一直都是这么写的。 以前能正常显示css样式,代码一直没改过,现在用好几个浏览器试了一下,css样式都加载不出来。

但是把 <!DOCTYPE html> 这个表头注释掉,css样式就能显示了。可是登录页面的表单跑到浏览器窗口的靠下面的位置上了,但是其他页面还是正常的。

  • 提问者 电磁护盾 #1
    这个项目的代码没改过,以前可以正常加载css样式,现在却加载不了css样式。 现在这个项目的所有jsp页面只有注释掉 <!DOCTYPE html>,那个jsp页面的css样式才能加载出来。
    2020-04-28 11:28:12
  • 好帮手慕小脸 回复 提问者 电磁护盾 #2
    同学你好,很抱歉在之前的回答中提示同学判断位置有误,还望见谅~ 同学可以尝试在编码过滤器中增加判断,而不是过滤器中哦。修改后重启项目,这里需要清空缓存再加载 祝学习愉快~
    2020-04-28 16:34:58
好帮手慕小脸 2020-04-28 10:04:55

同学你好,建议同学更换为其他浏览器后再进行访问。查看是否还出现css样式加载不出来的情况。如果依然存在上述情况,老师猜测可能是css路径被拦截了,可以在编码过滤器中增加判断,对css,js,png等路径放行,代码如下:

1
2
3
4
5
6
HttpServletRequest req =(HttpServletRequest) request;
String url=req.getRequestURI();
if(url.indexOf(".css")>0||url.indexOf(".jpg")>0||url.indexOf(".png")>0) {
    chain.doFilter(request, response);
    return;
}

祝学习愉快~

提问者 电磁护盾 2020-04-27 23:32:04

http://img1.sycdn.imooc.com//climg/5ea6fac8099e6d8b19201032.jpg

但是其他项目的css样式还是能正常加载的,而且<!DOCTYPE html>也没去掉。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码