关于springmvc静态资源文件加载的问题

这两天遇到了静态资源无法加载的问题,尝试了半天,得出了一些结果,这里做一个总结。

首先为什么会出现这样的情况:因为在web.xml文件中,配置了dispatchServlet,拦截了所有请求交给springmvc来处理。

以下方法可能在不同环境下结果不同,仅为我本地测试的结果

  • 第一种情况:如果你的静态资源文件不在WEB-INF下却加载不了
    (1)在 web.xml 配置文件中添加如下代码
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.jpg</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.js</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.css</url-pattern>
    </servlet-mapping>

需要加载什么类型的文件就添加对应后缀结尾的url-parttern
       (2)在 springmvc.xml 中配置如下代码

    <mvc:default-servlet-handler/>

默认让web容器处理静态文件,非静态的再交给dispatchServlet处理

  • 第二种情况:如果你的静态资源文件在WEB-INF下加载不了
    (3) 在 springmvc.xml 中配置如下代码
     <mvc:resources location="/WEB-INF/css/" mapping="/css/**"  />
     <mvc:resources location="/WEB-INF/js/" mapping="/js/**"  />

注意location开头和结尾必须都有 / ,不然会出错。

如果上面的方法混用,也可能会出现无法加载资源文件的情况。

发布了26 篇原创文章 · 获赞 6 · 访问量 1490

猜你喜欢

转载自blog.csdn.net/shuttle33/article/details/101437725