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

webapp目录结构如下:

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

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

右键查看源码:

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

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

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

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

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

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

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

<!--静态资源映射--><mvc:resources mapping="/css/**" location="/WEB-INF/css/"/><mvc:resources mapping="/js/**" location="/WEB-INF/js/"/><mvc:resources mapping="/html/**" location="/WEB-INF/html/"/><mvc:resources mapping="/img/**" location="/WEB-INF/img/"/><mvc:resources mapping="/jsp/**" location="/WEB-INF/jsp/"/>

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

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

<!--静态资源映射--><mvc:resources mapping="/css/**" location="/css/"/><mvc:resources mapping="/js/**" location="/js/"/><mvc:resources mapping="/html/**" location="/html/"/><mvc:resources mapping="/img/**" location="/img/"/><mvc:resources mapping="/jsp/**" location="/WEB-INF/jsp/"/>

就OK了。

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

  1. 直接访问WEB-INF目录下的JSP页面的方法

    WEB-INF目录下的JSP页面不能通过地址栏直接访问,WEB-INF目录下的文件不能直接被访问主要是出于安全考虑,当然如果不用考虑安全性的话,你可以直接把JSP页面放到WEB-INF外的webapp ...

  2. SSM:web目录下有的jsp和图片不能显示,有的可以显示的解决方法

    QUESTION:SSM:web目录下有的jsp和图片不能显示,有的可以显示的解决方法 ANWSER: 在学习ssm框架时,遇到的bug是千奇百怪,遇魔杀魔的本领也越来越强.突然出现的jsp页面和图片 ...

  3. .net framework 4.0 在 VS2010 安装目录下位置 dotNetFx40_Full_x86_x64.exe在磁盘哪个目录?...

    .net framework 4.0 在 VS2010 安装目录下位置 dotNetFx40_Full_x86_x64.exe在磁盘哪个目录? 使用VS2010开发应用程序完毕后,在发布应用程序时,常 ...

  4. linux脚本一般放在哪个目录下,Linux Deepin 将脚本放在个人目录下直接执行

    在 Linux Deepin 下,如何将 Bash 脚本放在个人目录下并能够不指定路径而直接执行脚本? 今天我们就以这个问题作为切入点,继续讲一下 Bash 的一些基础知识. 现在,我们打开文本编辑器 ...

  5. 解决/WEB-INF目录下的jsp页面引入webRoot下的Js、css和图片的问题

    通常把jsp页面放在webRoot的/WEB-INF下可以防止访问者直接输入页面. 而webRoot的/WEB-INF下的页面是受保护的,用户无法通过形如http://localhost:8080/t ...

  6. linux rpm 查看安装目录下,Linux如何修改RPM的安装目录?

    Linux系统下大多数人都是使用rpm -i xxxx.rpm命令来安装RPM包,这种情况下RPM会被安装在默认的目录当中.如果不想把RPM安装在这个目录下应该怎么办呢?下面就来介绍一下Linux如何 ...

  7. ubuntu etc目录下配置文件profile和profile.d的区别?(文件解析)

    文章目录 区别 profile文件解析 临时使库搜索路径生效示例 profile.d里.sh文件 区别 /etc/profile 是文件, /etc/profile.d/ 是目录,用在设置环境变量方面 ...

  8. 网站bin目录下的不可以放配置文件或其他可写文件

    最近在做一个采集系统,以前很少做网站类的系统,所以没有良好的编程习惯,为了简便,直接将xml和日志文件写在bin目录下,然而发现session还有一个表示状态的变量总是丢失,弄了一天也没弄明白,结果才 ...

  9. [virtualbox] win10与centos共享目录下,nginx访问问题

    原文,http://blog.csdn.net/zhezhebie/article/details/73554872 virtualbox自动挂载之后,默认是挂载在/media/sf_WWW下面的: ...

  10. php 编译ext目录下的,PHP编译安装后的目录和文件解释?

    大家是通过什么方式了解php编译安装后生成的目录及文件的含义和解释的?是否有专门的文档解释这一方面? 这里只贴目录 php7.2.0 ├── bin ├── etc │   └── php-fpm.d ...

最新文章

  1. JavaScript继承的多种方式和优缺点
  2. 用 Celery 实现邮件推送系统
  3. html列表穿插广告怎么实现,基于innerHTML中的script广告实现代码[广告全部放在一个js里面]...
  4. Swift UI开发初探
  5. WPF Popup 相关内容
  6. 实习踩坑之路:Date、LocalDate和LocalDateTime的区别
  7. QT--内存错误导致程序崩溃
  8. Everything搜索工具不能搜索硬盘文件夹问题解决
  9. 【UWA 学堂】部分渲染课程的调价通知
  10. UE4实时渲染需要注意的点——RTR(Real Time Rendering)
  11. AI助力教学升级,掌门优课智能互动双师课程获用户认可
  12. 学做衣服论坛 -服装DIY教程,缤纷服装网,裁剪教程,家用缝纫机,买布料
  13. PHP 调用金山词霸API获取音标和音频
  14. C语言中文网设计模式,C语言和设计模式(访问者模式)
  15. [UE4]让Spline具象化
  16. 飞桨首款韩女团小卡扭蛋机
  17. python绘制红色五角星_python绘制五角星
  18. 网上书城项目的需求分析、数据库表设计及前端界面的编写(项目进度一)
  19. [MAC各类右键菜单修改]Automator WorkFlow: 扩展右键菜单
  20. Mac不能复制拷贝写入文件到移动硬盘/U盘解决办法

热门文章

  1. HTTP 405 错误 – 方法不被允许 (Method not allowed)
  2. C-求二元一次方程解
  3. 腾讯地图如何根据经纬度获取地址
  4. HHL论文第二弹(基本过程)
  5. 智能语音交互社交APP-导声
  6. 门禁上的push是什么意思_门禁系统专业术语对照表
  7. Springboot连接Redis超时问题解决
  8. 微信打不开MP4文件 (记录编码问题)
  9. python中rename函数_Python3 os.rename() 方法
  10. 阿里重要开源项目汇总(更新中)