一.错误现象
SpringMVC在加载静态文件(.css ,.js,图片等)时,会出现加载不成功的现象。
浏览器
浏览器F12
后台窗口日志信息
七月 03, 2018 6:54:14 下午 org.springframework.web.servlet.DispatcherServlet noHandlerFound
警告: No mapping found for HTTP request with URI [/springmvc_4.x/image/Tulips.jpg] in DispatcherServlet with name 'springmvc'
七月 03, 2018 6:54:14 下午 org.springframework.web.servlet.DispatcherServlet noHandlerFound
警告: No mapping found for HTTP request with URI [/springmvc_4.x/image/thum_Tulips.jpg] in DispatcherServlet with name 'springmvc'
二.解决方法
1.笨办法,将所有不需要拦截的路径加入到web.xml文件中
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</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>
2.在框架(SpringMVC)拦截路径忽略掉静态文件后缀
全部拦截
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
拦截指定路径
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/.do</url-pattern>
</servlet-mapping>
3(推荐).使用SpringMVC特有的标签<mvc:resources/>进行配置
<mvc:resources location="/js/" mapping="/js/**"/>
<mvc:resources location="/image/" mapping="/image/**"/>
其中location指WebRoot下的所有文件夹,mapping指映射URL,即 http://localhost:8080/springmvc_4.x/image/Tulips.jpg