tomcat通过虚拟路径访问外部静态资源
转载:http://blog.csdn.net/yuancenyi/article/details/53414397
在项目开发中,单个工程中,为了以后软件版本升级的方便,经常将网站运行中某些上传的静态资源,如图片、视频等放置在服务器tomcat目录外面,如E盘的pic文件夹放置图片、video文件夹放置视频,那么等到网站的下次升级时,只有更新网站的war包了,原静态资源可以不用动,例如像百度ueditor控件,上传的图片和视频,默认放置于tomcat的webapps中的工程目录下,那么等到下次更新网站war包时,则先需将上传的图片和视频文件夹拷贝出来,等更新完war之后,再将图片和视频文件夹覆盖到工程目录下,不利于工程的部署和更新,因此适合将静态资源放置在工程目录外面!但是这种情况,用户是不能直接访问服务器外面的静态资源,解决方法一般有两种,第一种就是写相关的action 处理用户的访问请求,如通过数据流来读取图片等,例子可以见博文:
第二种是配置tomcat服务器的虚拟路径,相当于将配置的指定路径映射成一个web工程,即静态资源处于该虚拟web工程下,那么tomcat就可以直接解析供用户访问!此处以百度控件ueditor为例,将其上传的视频文件存放于服务器外面,具体步骤如下:
1、设置服务器外放置静态资源的路径,如:
2、修改ueditor配置文件的config.json中上传视频配置项:
其中videoUrlPrefix设置为空
3、修改tomcat服务器conf文件夹下的server.xml文件,添加context标签如下所示:
其中path是映射的虚拟路径(可视具体情况配置),docBase是静态资源存放的真实物理路径,reloadable指有文件更新时,是否重新加载,一般设置为true后,tomcat不需要重启启动,自动热加载!
运行后效果如下: