Tomcat配置图片目录的虚拟路径

为什么要配置虚拟路径?

  一些项目中往往需要上传一些图片文件之类,一般不建议直接保存在数据库内,往往是讲图片等资源保存在服务器的某个文件夹下,传统做法是上传到部署目录下,通过相对路径进行访问。这样当我们系统需要进行升级,进行全量更新的时候,就需要我们先将静态资源拷贝出来,然后项目部署成功之后又复制进部署目录。为了以后软件版本升级的方便,这时就需要这些静态资源放置在服务器tomcat目录外面。解决方法一般有两种,第一种就是写相关的action 处理用户的访问请求,如通过数据流来读取图片等。

例如:http://blog.csdn.net/yuancenyi/article/details/53327414

 这里介绍第二种:配置tomcat的虚拟映射路径

修改Tomcat中的server.xml文件

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
          <!-- 设置图片虚拟路径[访问时路径为/photo] -->  
         <Context path="/photo" docBase="D:\upFiles" reloadable="true" />  

<!-- 也可以这样设置图片虚拟路径 -->  
<Host name="10.0.0.123" appBase="webapps"  
        unpackWARs="true" autoDeploy="true" 
 xmlValidation="false" xmlNamespaceAware="false"> 
 <Context path="" docBase="F:\temp" reloadable="false" ></Context>  </Host>

其中path是映射的虚拟路径(可视具体情况配置),docBase是静态资源存放的真实物理路径,reloadable指有文件更新时,是否重新加载,一般设置为true后,tomcat不需要重启启动,自动热加载!这时把项目打成war包直接放在tomcat

IP+端口+项目名+图片目录+图片名字

如果用eclipse不能得到预期效果,请参考:http://www.cnblogs.com/gccbuaa/p/7226139.html

本人用的是myeclipse

也可以直接在eclipse中改

还有一种方式就是在G:\apache-tomcat-8.5.6\conf\Catalina\localhost中添加一个xml,内容填写如下

<?xml version="1.0" encoding="UTF-8"?> 
<Context path="/hjPicture" docBase="E:\hjPicture" crossContext="false" debug="0" reloadable="true"></Context>

, path 是虚拟目录 docBase 为实际目录,在这儿,每次配置后,都需从新启动,
Tomcat 中的webApps 下的的所有目录都会被自动被映射,就是你说的那个发布项目所做的事情
在Catalina 文件夹下,在context.xml 文件中 配置的设置将为整个服务器所共享

猜你喜欢

转载自blog.csdn.net/qq_38078822/article/details/82157055
今日推荐