SpringMVC 无法加载静态资源jquery

SpringMVC 在配置前端控制器的时候,一般采用的操作都是缺省,也就是 / ,用于项目的虚拟路径匹配。
在这里插入图片描述
但是这样带来的后果是,当你要加载静态资源的时候,也会提交到SpringMVC的框架中处理,导致静态资源被拦截,出现无法加载的情况。类似于这种在这里插入图片描述
是因为前端控制器将jquery也当成了一个RequestMapping,对其进行匹配,当匹配不上的时候,就没有加载出jquery。

方法1

这时候需要就需要告知SpringMVC那些静态资源需要忽略。
在spring-mvc.xml文件中加多以下内容

<mvc:resources mapping="/js/**" location="/js/"/>

现在来详细解释一下,这行代码是为了开放目的路径下的静态资源访问权限。
mapping 代表映射地址,发生请求时访问哪个路径下的文件。
location 代码哪个目录下的静态资源是对外开放的。在写的时候前后都要有 /
我举的例子是在js目录下放着jquery,所以mapping是 /js/**,代表允许访问js目录下的所有文件。location 就是/js/。
通俗来说就是mapping代表资源的地址,location就是放着资源的那个目录。

方法2

如果你觉得上面的mapping和location有点不会配,可以用这种

<mvc:default-servlet-handler/>

这代码的意思就是,当RequestMapping映射找不到目标的映射地址的时候,将交还给服务器去处理。比如说,我的jquery在SpringMVC的controller中都没找到目标,那就交还给Tomcat容器去加载静态资源。

测试的时候,重启服务器,还需要清除一下缓存。

我遇到了一个很奇怪的现象是,我的jquery版本为jquery-3.5.1.min.js,无论我怎么检查配置,都是无法加载静态资源,通过搜索其他的大神的解决方案,就是将jquery-3.5.1.min.js中的min去掉,即jquery-3.5.1.js后再尝试,确实可以加载,但是我不信邪又将min加了回来,清除缓存再试,却又可以了,确实玄学。希望有懂的小伙伴可以学习交流一下。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/interestANd/article/details/113127263