首先因为我们会在web.xml配置spingMVC拦截器,里面有一个<url-pattern>/</url-pattern>
,这里斜杠的意思就是拦截所有请求,包括我们的静态资源。因此像http://localhost:8080/LogisticsServiceSystem/web.html
这样的请求是访问不了我们的任何静态资源的。比如images/home.png
和 web.html
这样的
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/springMVC-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
所以可以在spirngMVC.xml
(我这里是springMVC-servlet.xml
)
里面加一句
<mvc:default-servlet-handler/>
他的意思是在加载默认静态资源时不对DispatcherServlet请求做拦截,这时就可以访问到images,css,js等静态资源了。
我的目录如下:
如果不管用可以参考下面这个方法:
我遇到的问题是文件权限问题。我把images,css,js复制到我静态资源目录下面。无论是在html里面访问图片,还是通过网址都访问不了。
后面我把图片直接 拉 到我的项目中,就成功解决了。
我猜想复制粘贴继承的是目录下的权限,所以不能被访问。
而拉到项目中后源文件就消失了。这时候继承的是我这个项目目录的权限。
其他配置:
扫描controller和restcontroller注解:
<context:component-scan base-package="com.*" />
requestMappring映射:
<mvc:annotation-driven/>
加载某些springMVC注解包
<context:annotation-config />
以上是我搭建基于maven的spirngmvc框架遇到的问题,做个记录,希望能对你有所帮助!