来看下面这个html文件的源码:
在windows系统中,如果你不为站点配置域名(虚拟主机),并在apache里面做地址映射,那么绝对路径寻找的地址可能是错误的。以上面这个文件为例,假设文件结构是这样:
显然在wamp环境下,localhost寻址到的默认是www文件夹根路径,这样如果你在test文件夹下运行之前那段html代码,在使用
http://localhost/这种方式访问页面的情况下,你是访问不到js和images文件夹下的图片和js的,但是如果使用域名的方式访问:http://dev.test.com/XXXXX这样却是可以访问到的。
为什么会这样呢?原因就就出在apache身上,当我们安装了apache之后,apache的配置文件默认会为我们配置好localhost映射的文件夹,在wampserver中这个文件夹就是wamp目录下的www文件夹,意思是当你使用localhost的方式进行web浏览时,所有文件的根路径都是www文件夹。而前端页面使用绝对路径的方式(/)引用资源时,正是基于这个根路径。因此,我们配置一个虚拟主机就能让程序去寻找我们配置好的根路径,并在此基础上继续寻找资源(css、image等)文件。
通过这个实例,你就能明白为什么要为每个项目文件夹配置虚拟主机(域名),因为许多程序员编写的程序都喜欢用绝对路径的寻址方式,比如dedecms。这样做本身没什么问题, 因为在实际生产环境中程序都是使用域名的方式来进行访问的。但是这种方式容易给在windows系统中进行编程的初学者造成困扰,因为大多数程序员都喜欢直接用"localhost + 文件夹 + 文件名"的方式来访问页面和调试代码。