让初学者纠结的相对路径和绝对路径

好比说你的C盘ABC文件夹下有两个文件1和2css

若是要文件1说出文件2的位置(也就是路径),那么它有两种表示方法:web

C:\ABC\2  浏览器

这就是绝对路径,指明2文件在C盘ABC文件下,从最大的目录C盘开始表示出来.服务器

这就是相对路径,由于1文件和2文件都在C:\ABC下,因此它们的路径前面"C:\ABC"都是同样,就不用表示出来了..编辑器

另个比喻:学习

比方C盘ABC文件夹有个1文件,还有一个DEF文件夹,而DEF文件下有个2文件.网站

那1和2的文件路径分别为:(都是绝对路径).net

C:\ABC\1htm

C:\ABC\DEF\2图片

若是让1文件来表示2文件的路径

绝对路径: C:\ABC\DEF\2

相对路径: DEF\2 (由于1和2文件前面的C:\ABC这段路径相同就不用写出来了)

,而把页面传到服务器上就老是出现看不到图片,css样式表失效等错误。这种状况下多半是因为你使用了错误的路径,在应该使用相对路径的地方使用了绝对路径,致使浏览器没法在指定的位置打开指定的文件。

 下面咱们就来谈一下最让初学者头疼的相对路径与绝对路径的区别问题。

 

 什么是绝对路径

 你们都知道,在咱们平时使用计算机时要找到须要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径,例如只要看到这个路 径:c:/website/img/photo.jpg咱们就知道photo.jpg文件是在c盘的website目录下的img子目录中。相似于这样完 整的描述文件位置的路径就是绝对路径。咱们不须要知道其余任何信息就能够根据绝对路径判断出文件的位置。而在网站中相似以 http://www.pckings.net/img/photo.jpg来肯定文件位置的方式也是绝对路径。

 

 另外,在网站的应用中,一般咱们使用"/"来表示根目录,/img/photo.jpg就表示photo.jpg文件在这个网站的根目录上的img目录 里。可是这样使用对于初学者来讲是具备风险性的,由于要知道这里所指的根目录并非你的网站的根目录,而是你的网站所在的服务器的根目录,所以当网站的根 目录与服务器根目录不一样时,就会发生错误。

 什么是相对路径

 让咱们先来分析一下为何会发生图片不能正常显示的状况。举一个例子,如今有一个页面index.htm,在这个页面中联接有一张图片photo.jpg。他们的绝对路径以下:

 c:/website/index.htm

 c:/website/img/photo.jpg

 

 若是你使用绝对路径c:/website/img/photo.jpg,那么在本身的计算机上将一切正常,由于确实能够在指定的位置即c: /website/img/photo.jpg上找到photo.jpg文件,可是当你将页面上传到网站的时候就极可能会出错了,由于你的网站可能在服务 器的c盘,可能在d盘,也可能在aa目录下,更可能在bb目录下,总之没有理由会有c:/website/img/photo.jpg这样一个路径。那 么,在index.htm文件中要使用什么样的路径来定位photo.jpg文件呢?对,应该是用相对路径,所谓相对路径,顾名思义就是本身相对与目标位 置。在上例中index.htm中联接的photo.jpg可使用img/photo.jpg来定位文件,那么不论将这些文件放到哪里,只要他们的相对 关系没有变,就不会出错。

 

 另外咱们使用“../”来表示上一级目录,“../../”表示上上级的目录,以此类推。(学习过dos的朋友可能更容易理解)

 

 再看几个例子,注意全部例子中都是index.htm文件中联接有一张图片photo.jpg。

 

 例:

 c:/website/web/index.htm

 c:/website/img/photo.jpg

 在此例中index.htm中联接的photo.jpg应该怎样表示呢?

 错误写法:img/photo.jpg

 这种写法是不正确的,在此例中,对于index.htm文件来讲img/photo.jpg所表明的绝对路径是:c:/website/web/img/photo.jpg,显然不符合要求。

 正确写法:使用../img/photo.jpg的相对路径来定位文件

 

 例:

 c:/website/web/xz/index.htm

 c:/website/img/images/photo.jpg

 在此例中index.htm中联接的photo.jpg应该怎样表示呢?

 错误写法:../img/images/photo.jpg

 这种写法是不正确的,在此例中对于index.htm文件来讲../img/images/photo.jpg所表明的绝对路径是:c:/website/web/img/images/photo.jpg。

 正确写法:可使用../../img/images/photo.jpg的相对路径来定位文件

 

 

 例:

 c:/website/web/xz/index.htm

 c:/website/web/img/photo.jpg

 在此例中index.htm中联接的photo.jpg应该怎样表示呢?

 错误写法:../../img/photo.jpg

 这种写法是不正确的,在此例中对于index.htm文件来讲../../img/photo.jpg所表明的绝对路径是:c:/website/img/photo.jpg。

 正确写法:可使用../img/photo.jpg的相对路径来定位文件

 

 总结:经过以上的例子能够发现,在把绝对路径转化为相对路径的时候,两个文件绝对路径中相同的部分均可以忽略,不作考虑。只要考虑他们不一样之处就能够了。

 

 如何修改样式表的路径:

 

 使用文本编辑器打开htm文件,查看源代码,在源代码的开头部分<head>......</head>标记中间找 到<link rel="stylesheet" href="test.css" type="text/css">。“Href=”后面的内容就是css的路径,咱们能够根据以上的知识进行相对路径的转换。

 

 例:

 c:/website/web/xz/index.htm

 c:/website/css/test.css

 在此例中index.htm中联接test.css文件,可使用../../css/test.css的相对路径来定位文件,完整的代码标记 是:<link rel="stylesheet" href="../../css/test.css " type="text/css">

 错误写法举例:../../../css/test.css

 这种写法是不正确的,在此例中对于index.htm文件来讲../../../css/test.css所表明的绝对路径是:c:/css/test.css

 

 最后,为了不在制做网页时出现路径错误,咱们可使用dreamweaver的站点管理功能来管理站点。只要使用菜单命令site-new site新建站点并定义站点目录以后,它将自动的把绝对路径转化为相对路径,而且当你在站点中移动文件的时候,与这些文件关联的链接路径都会自动更改,实 在是很是的方便。

 

绝对路径,从根目录为起点到你所在的目录;

相对路径,从一个目录为起点到你所在的目录。

例如:

            ┍ A文件夹

         C -|

            ┕ B文件夹

 

绝对路径: C:\A文件夹

 

相对路径(若是你在B文件夹时): ..\B文件夹  (‘..\’向上一级意思)

相关文章
相关标签/搜索