方案1
-
DispatcherServlet中拦截所有请求: “/”, 导致项目的静态资源访问不了。
-
原因分析:
-
Tomcat启动,加载自身的tomcat/conf/web.xml 配置文件; 也会加载所有项目的web.xml配置,如果项目的web.xml配置与tomcat自身的配置有冲突,则以自己项目配置为主。
-
Tomcat服务器,也叫做servlet服务器,只支持servlet规范,访问所有的资源都是通过servlet处理。
-
举例: 我们访问静态资源,但是自己又没有写Servlet,也可以访问。是因为Tomcat自身提供了一个Servlet:DefaultServlet 默认servlet,专门处理静态资源,把静态资源响应给客户端。
-
Tomcat中的DefaultServlet 默认配置:(查看)
-
通过在自己项目中,指定静态资源交给DefaultServlet处理。
-
方案2
加粗样式
SpringMVC提供的解决方案:
方式1: 所有的静态资源交给DefaultServlet处理。 (重点)
方式2: 通过mvc:resources 指定springMVC不拦截指定的资源。
关键配置
<mvc:resources mapping="/index.html" location="/index.html