| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1499 人关注过本帖
标题:[转帖]走出路径的困惑—关于绝对路径和相对路径
只看楼主 加入收藏
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
收藏
 问题点数:0 回复次数:7 
[转帖]走出路径的困惑—关于绝对路径和相对路径
走出路径的困惑—关于绝对路径和相对路径 来源: 今晚在线 作者: 类型: 其他 发表: 2005-3-24 浏览:
如果您刚刚开始接触网页设计,是不是经常发生这样的问题呢?做好的网页在自己机器上可以正常浏览,而把页面传到服务器上就总是出现看不到图片,“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(站点>新建站点)”新建站点并定义站点目录之后,它将自动的把绝对路径转化为相对路径,并且当你在站点中移动文件的时候,与这些文件关联的连接路径都会自动更改,实在是非常的方便。

[此贴子已经被作者于2005-4-7 13:06:28编辑过]

搜索更多相关主题的帖子: 路径 网页设计 服务器 转帖 困惑 
2005-04-07 13:06
suyongtao
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:33
帖 子:8674
专家分:127
注 册:2004-11-6
收藏
得分:0 

面朝大海,春暖花开!
2005-04-07 14:15
雁过拔毛
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2005-12-7
收藏
得分:0 
我明白了,我做的留言本就出现这个问题,今天看到这真的很感谢呀
那是不是说一般只用相对路径呢?

老师们好!俺就在这疙瘩学习了!
2005-12-07 11:10
yzsboby
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2005-12-7
收藏
得分:0 

http://www./bbs
2005-12-07 11:14
空中楼阁
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-11-3
收藏
得分:0 
呵呵!
2006-11-29 19:03
4doo
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-11-9
收藏
得分:0 
我是新手,顶顶!喜欢!
2006-11-29 22:08
lq7350684
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5089
专家分:98
注 册:2006-11-6
收藏
得分:0 
虽然很初级,不过对刚接触这块的人来说是个好的帖子,顶你一下.
2006-11-30 10:42
zhangling
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-4-25
收藏
得分:0 
非常感谢
2006-12-02 11:45
快速回复:[转帖]走出路径的困惑—关于绝对路径和相对路径
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020218 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved