关于路径的问题

在html文件中:

(1)../表示当成文件所在的目录的父目录,同理../../表示父目录的父目录,以此类推

例如:在WebRoot下有一个图片文件,其路径为WebRoot/images/logo.jpg

而在一个html(目录为WebRoot/html/index.html)文件中引用了这个图片

则在这个html中可以这样写<imagesrc="../images/logo.jpg"/>

(2)./表示当成目录和在文件所在的当前目录的目录名不加任何东西是一个样的

例如:在WebRoot下有一个图片文件,其路径为WebRoot/html/logo.jpg

而在一个html(目录为WebRoot/html/index.html)文件中引用了这个图片

他们在同一目录下...

则在这个html中可以这样写<imagesrc="logo.jpg"/>还可以这样写

<imagesrc="./logo.jpg"/>

(3)/这个千万要小心

以前我一直以为是指根目录(也就是说一直以为有配置虚拟目录时根目录为虚拟目录,没配置则为端口号)

但是事实上这个表示的是直接到端口号(而虚拟目录对应的是WebRoot目录)

例如在(1)中你的代码是这样写的<imagesrc="/images/logo.jpg"/>

所以你可以通过http://127.0.0.1:8080/html/index.html来把index.html中

的图片显示出来,但是当你为这个工程配置了虚拟目录test之后,你会发现通过url:

http://127.0.0.1:8080/test/html/index.html访问时,图片显示不出来了

为什么呢,其实这时你会发现index.html的图片的路径为

http://127.0.0.1:8080/images/logo.jpg

但是这时你有添加了虚拟目录了,所以图片的路径应该为

http://127.0.0.1:8080/test/images/logo.jpg,所以这时你的代码不能

写成<imagesrc="/images/logo.jpg"/>而应该写成

<imagesrc="../images/logo.jpg"/>

假如logo.jpg与index.html在同一目录下

则代码应该写成<imagesrc="logo.jpg"/>或者

<imagesrc="./logo.jpg"/>

请记住不要写成这样的形式<imagesrc="/images/logo.jpg"/>

不然添加了虚拟目录之后就会出现找不到文件的问题了

也就是最好不要在最上级的目录前面加上/,不然会直接指向端口号

相关推荐