webapp(WebRoot)目录下的jsp访问不了webapp目录的css文件的问题解决

今天在做一个SSM项目的时候遇到了一个很奇怪的bug,直接上图:

webapp目录结构如下:

webapp(WebRoot)目录下的jsp访问不了webapp目录的css文件的问题解决_第1张图片

webapp目录下的login.jsp文件里的部分内容(注意路径,是相对路径): 

webapp(WebRoot)目录下的jsp访问不了webapp目录的css文件的问题解决_第2张图片

可是当我访问login.jsp文件的时候,link标签引入的.css文件却不起效果了: 

 webapp(WebRoot)目录下的jsp访问不了webapp目录的css文件的问题解决_第3张图片

右键查看源码:

webapp(WebRoot)目录下的jsp访问不了webapp目录的css文件的问题解决_第4张图片

点击引用的css文件,却报了404的错: 

webapp(WebRoot)目录下的jsp访问不了webapp目录的css文件的问题解决_第5张图片

 

然后我在开发者模式里查看路径,并没有错:

 webapp(WebRoot)目录下的jsp访问不了webapp目录的css文件的问题解决_第6张图片

 

这一系列查看下来就让我很头大了,查看网上的关于jsp访问不了css文件问题的博客,里面描述的很多都是在WEN-INF目录下的jsp访问不到webapp(WebRoot)目录下的情况,而且我的静态资源映射已经配置了。

继续查看,我的项目是使用了Spring框架,在我的web.xml文件中配置了拦截器:

webapp(WebRoot)目录下的jsp访问不了webapp目录的css文件的问题解决_第7张图片

注意拦截器拦截的url,它是把所有访问资源的请求都拦截下来了,包括静态资源访问,于是我把这个拦截器注释掉了,之后页面就能正常显示了,查看页面源码也可以直接定位到.css文件了。

原来, 是这个拦截器阻止了我对.css静态文件的访问。

所有最终还是拦截器的问题,后来我看去仔细看我的静态资源配置:


    
    
    
    
    

傻眼了,发现原来是我的映射的地址错了,真正的静态文件不在WEB-INF下,而我这里却设置了在WEB-INF下,这样的话如果外面想访问"/css/**"的映射文件, 就去"/WEB-INF/css/"路径找,那当然是找不到啊。

后面我把静态资源映射的配置改成:


    
    
    
    
    

就OK了。

 

 

 

 

你可能感兴趣的:(bug合集)