springMvc在拦截了所有的请求后很容易出现静态资源不能访问的情况。
<servlet> <servlet-name>springMvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:dispatcher-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
做上如上这段配置后,springMvc会把所有的请求都当做servlet来处理,去找对应的controller,找不到就会出现404错误。解决办法有好几种,我这里就只说一种了,其余的请自行百度
1、在mvc.xml文件里面添加如下代码
<mvc:resources location="/images/" mapping="/images/**" cache-period="31556926" /> <mvc:resources location="/static/" mapping="/static/**" cache-period="31556926" />
告诉springMvc这些不用拦截,并在对应的mapping找对应的资源。
注意:静态资源请不要放在WEB-INF目录下,因为WEB-INF目录下的文件是不能公开访问的,我曾在这里纠结了好半天,在此提醒下和我同样小白的你。