目录
当在DispatcherServlet的
中配置拦截 “/” 时,除了jsp文件不会拦截以外,其他所有的请求都会经过前端控制器进行匹配。此时静态资源例如css、js、jpg等就会被前端控制器拦截,导致不能访问,出现404问题。想要正常映射静态资源共有三种方案:
在SpringMVC的配置文件中配置
修改SpringMVC核心配置文件:
<mvc:default-servlet-handler/>
SpringMVC模块提供了静态资源映射器组件,通过
标签配置静态资源映射器,配置后的路径不会由DispatcherServlet处理。
修改SpringMVC核心配置文件:
<mvc:resources mapping="/img/" location="/img/"/><mvc:resources mapping="/js/" location="/js/"/>
在web.xml可以配置默认Servlet处理静态资源,该Servlet由tomcat提供,它会直接访问静态资源不进行其他操作。这样就避免了使用DispatcherServlet对静态资源的拦截:
修改web.xml:
- <servlet-mapping>
- <servlet-name>defaultservlet-name>
- <url-pattern>*.jpgurl-pattern>
- servlet-mapping>
- <servlet-mapping>
- <servlet-name>defaultservlet-name>
- <url-pattern>*.cssurl-pattern>
- servlet-mapping>
- <servlet-mapping>
- <servlet-name>defaultservlet-name>
- <url-pattern>*.jsurl-pattern>
- servlet-mapping>
- <servlet-mapping>
- <servlet-name>defaultservlet-name>
- <url-pattern>*.pngurl-pattern>
- servlet-mapping>