项目发布后一般图片都是存储在文件服务器中的。或者再做开发的时候我们是将上传的图片存储在电脑中某个文件夹,项目启动后直接访问的话只能使用file://这种方式访问,当然不靠谱。所以我们使用到了springmvc中的mvc:resource标签
首先需要修改一下web.xml文件。保证DispatcherServlet的拦截路径是/
<servlet>
<servlet-name>ysmall</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ysmall</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
这样项目中的所有链接都会通过这个servlet访问,但是当我们修改了这里后,静态文件是无法访问到的。我们需要到spring的配置文件中添加如下,使静态文件使用默认的servlet进行访问。
<mvc:default-servlet-handler/>
然后我们加入想要添加的静态文件映射内容,比如我想使用localhost:8080/files/img.jpg访问我电脑中d盘filesdir文件夹下的img.jpg文件,那么使用如下配置。
<mvc:resources mapping="/files/**" location="file:///D:/filesdir/" />
现在又有一个问题,加入如上内容后,如果controller使用的注解,那么就会出现无法访问,需要再spring配置文件中加入
<mvc:annotation-driven/>