版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hzq450013155/article/details/81149603
今天碰到一个问题,SSM项目WEB-INF目录下的静态资源例如.css .js .font等文件无法访问,原因是在web.xml里面配置的springmvc的DispatcherServlet的mapping为/,则Spring MVC将捕获Web容器所有的请求,因此不能对静态资源进行访问
<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:spring-mvc.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.xml中配置:
<mvc:default-servlet-handler />
方法二:
在web.xml中DispatcherServlet设置的spingmvc配置文件中加入mvc:resources,例如:
<mvc:resources location="/js/" mapping="/js/**"></mvc:resources>
<mvc:resources location="/css/" mapping="/css/**"></mvc:resources>
方法三:
在web.xml中添加servlet-mapping
<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>