web项目中,往往需要上传一些图片或者excel等文件,如果文件不存储在数据库中,往往是将图片等资源保存在服务器的某个文件路径下。传统做法是上传到项目部署的根目录或者是根目录下的指定文件目录下,并通过相对路径进行访问。而这样做存在的问题就是,每当我们系统需要进行升级,进行全量更新的时候,就需要我们先将静态资源拷贝备份出来,然后项目部署成功之后再将备份的文件复制回项目部署目录下。重复工作量比较大。为了解决这个问题,我们可以配置tomcat实现图片等资源文件存储在项目目录外路径下,配置方式如下:
修改tomcat下/conf/server.xml文件
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!--增加如下内容-->
<Context docBase="/usr/local/userfiles/" path="/项目根目录/images" />
<!--docBase 设置图片等文件存储的绝对路径 -->
<!--path 设置访问图片的weburl虚拟路径 -->
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<!--增加如下内容-->
<Context docBase="/usr/local/userfiles/" path="/项目根目录/images" />
<!--docBase 设置图片等文件存储的绝对路径 -->
<!--path 设置访问图片的weburl虚拟路径 --> 图片上传存储