linux下通过软连接实现访问项目路径外面的资源
- 该方案的好处是虚拟目录下的文件也可以类似于静态资源一样这样访问
- 美中不足的是上传图片还需要上传到虚拟目录的绝对路径,在网上没看到怎么获取虚拟目录的绝对路径的方法;个人想到的解决方案就是配置一个properties文件,里面放绝对路径。
更多相关内容可以在网上查阅。。参考:http://blog.csdn.net/l1028386804/article/details/52389722
- 该方案的好处就是可以和类似静态文件一样访问,上传就直接上传到项目根目录下的文件夹即可。和文章开头说的那种方案在代码上来说是一样的。
- 缺点是需用通过linux命令对上面项目根目录的上传文件夹做软连接,连接完之后上传的文件其实是上传到了软连接的文件夹去了。
- 还有个问题是需要配置tomcat支持软连接
综合上面2种情况,我选择采用软连接的方式,下面谈谈linux软连接。
一、软连接介绍
ln -s 源文件 目标文件
ln -s 源文件 目标文件
二、实际案例
- 在linux中建立一个名为images的文件夹。(这个文件夹名字要和你准备软连接的文件夹名字一样,这个文件夹的位置随便在那都可以,但是一般都在tomcat的外面。)

- 进入到tomcat下的部署好的项目路径下,创建软连接。源文件夹是上面创建的该文件夹,目标文件夹是后面我们上传的文件夹。

建立成功后就可以看到images文件夹下有个箭头,用图形界面看其实就是个快捷方式。

- 建立软连接后,可以测试上传文件,会发现文件上传后跑到tomcat外面的文件夹里面去了。但是用访问静态文件的方式现在还是访问不到,会报404。原因是tomcat默认不支持软连接,需要在conf/context.xml中开启。配置方法如下:
tomcat5、6、7版本:
tomcat8、9版本:
<Context> <Resources allowLinking="true" /> </Context>
更多配置参考:http://www.cnblogs.com/wuxun1997/p/6769971.html
- 配置完后,就大功告成了。
更多软连接的案例可参考:http://blog.csdn.net/ggmmqq/article/details/8253570
http://www.cnblogs.com/wuxun1997/p/6769971.html
三、软连接的注意事项
(1)软连接的删除需要特别注意,具体可参考
http://www.cnblogs.com/cartsp/p/6437046.html
http://blog.csdn.net/zhenwenxian/article/details/16369767
(2)笔者发现eclipse的重新部署还是会把软连接的源目录下的文件删除,这个是个很奇怪的地方。不过运维人员重新部署肯定不是用eclipse的。所以不用担心。
(3)重新部署项目后,软连接需要重新建立
后续还有一篇介绍linux软连接的文章,推荐阅读。
linux下通过软连接实现访问项目路径外面的资源的更多相关文章
- Linux下SVN创建新的项目
Linux下SVN创建新的项目 Linux环境下的SVN创建新的项目 一.前置条件: 1)有安装了linux系统的服务器,123.*.*.29 2)服务器上安装了svn,本人服务器的svn的数据安 ...
- Windows 与 Linux下关于端口不能访问的问题
自己写的一个HTTP文件服务器,在端口 50000上监听HTTP连接请求,在Eclipse里面将程序正常地启动之后,能够在自己的机器上(Eclipse启动该程序的机器上)访问 50000端口,即Fil ...
- linux下使用SVN上传项目
linux下使用SVN上传项目 摘自:https://blog.csdn.net/puppet_/article/details/78259591 2017年10月17日 13:51:33 puppe ...
- Linux 下指定端口开放访问权限
Linux 下指定端口开放访问权限 作者:Grey 原文地址: 博客园:Linux 下指定端口开放访问权限 CSDN:Linux 下指定端口开放访问权限 环境 CentOS 系和 Debian 系的防 ...
- linux下使用软连接之案例二
在笔者的上一篇文章介绍过怎么通过linux的软连接在不修改上传代码的情况下,将上传到项目路径下的图片改为上传到项目外面,防止重新部署后图片被删除了.同时还可以直接通过类似访问静态资源的方 ...
- Linux下tomcat的安装与项目部署
最近在linux下安装了jdk,为了圆我以前的心愿,把tomcat也安装了,顺便部署个项目,也算是小又成就感 废话不说了,直接上过程 一.下载安装对应的jdk,并配置Java环境. 有关jdk的安装请 ...
- linux下c/c++方式访问curl的帮助手册
自:http://blog.chinaunix.net/u1/47395/showart_1768832.html 有个业务需求需要通过curl 代理的方式来访问外网 百度了一把,测试可以正常使用.记 ...
- linux 下添加库的加载路径的方式
linux 下有两种添加加载库路径的方式: 1.修改环境变量: export LD_LIBRARY_PATH=path_name 2.修改配置文件 修改 /etc/ld.so.conf 的内容在最后添 ...
- Linux下的软连接和硬链接
由于教学上的原因,需要下载Android源码,后来使用repo时,系统提示需要python2,我的系统中是两个都有的,但是默认是python3,无法下载,通过创建了个链接搞定,下面就来说说linux下 ...
随机推荐
- MySql 简单统计查询消耗时间脚本
MySql 简单统计查询消耗时间脚本 by:授客 QQ:1033553122 drop procedure if exists selectTime; delimiter; create proced ...
- phar 反序列化学习
前言 phar 是 php 支持的一种伪协议, 在一些文件处理函数的路径参数中使用的话就会触发反序列操作. 利用条件 phar 文件要能够上传到服务器端. 要有可用的魔术方法作为"跳板&qu ...
- windows系统相关命令及问题排查实践
1. 如何查看哪个端口被哪个程序占用? Netstat –ano|findstr "80" ->找到监听80端口的pid tasklist|findstr “<PID号 ...
- Windows 2012桌面显示“我的电脑”
Windows 2012桌面显示“我的电脑” rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0
- The 10 Best Neighborhoods in Seattle
https://www.seattlemet.com/articles/2015/4/24/the-10-best-neighborhoods-in-seattle-may-2015 By Darre ...
- MFC 常用功能总结
目录 ◆ 获取启动参数◆ 调整窗体大小◆ 关闭Dialog窗体◆ Dialog启动时指定控件为焦点◆ Dialog中禁止ESC回车关闭窗体◆ 回车后焦点自动跳到下一个控件◆ 窗体中某个控件捕获右键菜单 ...
- MySQL二进制日志文件Binlog的三种格式以及对应的主从复制中三种技术
二进制日志文件Binlog的格式主要有三种: 1.Statement:基于SQL语句级别的Binlog,每条修改数据的SQL都会保存到Binlog里面. 2.ROW:基于行级别,每一行数据的变化都会记 ...
- foreach语句的用法
foreach语句: foreach语句是for语句的特殊简化版本,不能完全取代for语句,但任何foreach语句都可以改写为for语句版本.foreach并不是一个关键字,习惯上将这种特殊的for ...
- 阿里八八Alpha阶段Scrum(5/12)
今日进度 叶文滔: 与添加日程界面完成界面对接. 问题困难:发现浮动按钮拖曳存在BUG,无法正确判断拖曳与点击事件,已经修复为普通悬浮按钮. 林炜鸿: 绘制完成添加日程界面. 李嘉群: 1.尝试有关用 ...
- vue2.0学习笔记之路由(二)路由嵌套
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...