windows系统下面的快捷方式与符号链接那些不为人知的秘密

86246138 2017-09-05

在windows下面,我们大部分人应该都用过快捷方式,有了快捷方式,我们能够将这个快捷方式放在任何地方,但是打开快捷方式的时候,其实就是这个快捷方式指向的目录或者文件,同样在linux系统下面有软链接,这个软链接的作用和windows系统下面的快捷方式都能够达到相同的效果,下面我们就来聊聊windows下面的快捷方式和符合链接。

业务场景

windows系统下面的快捷方式与符号链接那些不为人知的秘密

在一个网站项目里面,我们出现了这样的一种场景(以Apache为例),就是我们的存储图片等等数据文件的目录是另一个专门的存储目录,而网站根目录和这个数据存储目录不在同一个目录,现在需要以域名+数据存储目录的URL方式来访问,那么我们应该怎么办呢?

网站根目录:D:\project

数据存储目录:E:\data\img、E:\data\doc等等

网站域名:http://www.test.com

需要实现:http://www.test.com/img/one.png能够显示one.png这个图片

APACHE下面的问题

windows系统下面的快捷方式与符号链接那些不为人知的秘密

针对上面的业务场景,我们能够使用符号链接来完成,就是在网站根目录下面创建一个指向数据存储目录的符号链接,这样我们就能够通过URL的方式访问我们的图片等,这个方案在Linux系统下面的符号链接是可以实现的,但是当我用Windows下面的快捷方式来做的时候,发现始终是404错误,下面是APACHE的一个重要配置。

Options FollowSymLinks

有了这个配置,才能够允许我们访问符号链接,但是不管怎么配置,windows下面的快捷方式始终报404错误。

快捷方式和符号链接的区别?

windows系统下面的快捷方式与符号链接那些不为人知的秘密

  1. 符号链接不占用磁盘空间,而快捷方式会占用。

  2. 符号链接被程序识别为源目录,而快捷方式被程序识别为文件,而这个文件并不指向源目录或者源文件。

从第二点,我们能够看到,apache是程序,所以它将快捷方式识别为普通的文件,所以也就返回了404.

windows下面怎么创建符号链接

windows系统下面的快捷方式与符号链接那些不为人知的秘密

在windows系统下面,我们能够通过mklink这个命令来创建符号链接,于是我用这个命令创建符号链接并成功完成业务场景所需要的功能。

mklink /D dir2 dir1

其中dir1是源文件或者目录,dir2是需要创建的符号链接的文件或者目录。

相关推荐