什么相对路径?什么是绝对路径?

什么相对路径?什么是绝对路径?,第1张

如果您刚刚开始接触网页设计,是不是经常发生这样的问题呢?做好的网页在自己机器上可以正常浏览,而把页面传到服务器上就总是出现看不到,css样式表失效等错误。这种情况下多半是由于你使用了错误的路径,在应该使用相对路径的地方使用了绝对路径,导致浏览器无法在指定的位置打开指定的文件

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

什么是绝对路径:

大家都知道,在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径,例如只要看到这个路径:c:/website/img/photojpg我们就知道photojpg文件是在c盘的website目录下的img子目录中。类似于这样完整的描述文件位置的路径就是绝对路径。我们不需要知道其他任何信息就可以根据绝对路径判断出文件的位置。而在网站中类似以http://wwwpckingsnet/img/photojpg来确定文件位置的方式也是绝对路径。

另外,在网站的应用中,通常我们使用"/"来表示根目录,/img/photojpg就表示photojpg文件在这个网站的根目录上的img目录里。但是这样使用对于初学者来说是具有风险性的,因为要知道这里所指的根目录并不是你的网站的根目录,而是你的网站所在的服务器的根目录,因此当网站的根目录与服务器根目录不同时,就会发生错误。

什么是相对路径:

让我们先来分析一下为什么会发生不能正常显示的情况。举一个例子,现在有一个页面indexhtm,在这个页面中联接有一张photojpg。他们的绝对路径如下:

c:/website/indexhtm

c:/website/img/photojpg

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

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

再看几个例子,注意所有例子中都是indexhtm文件中联接有一张photojpg。

例:

c:/website/web/indexhtm

c:/website/img/photojpg

在此例中indexhtm中联接的photojpg应该怎样表示呢?

错误写法:img/photojpg

这种写法是不正确的,在此例中,对于indexhtm文件来说img/photojpg所代表的绝对路径是:c:/website/web/img/photojpg,显然不符合要求。

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

例:

c:/website/web/xz/indexhtm

c:/website/img/images/photojpg

在此例中indexhtm中联接的photojpg应该怎样表示呢?

错误写法:/img/images/photojpg

这种写法是不正确的,在此例中对于indexhtm文件来说/img/images/photojpg所代表的绝对路径是:c:/website/web/img/images/photojpg。

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

例:

c:/website/web/xz/indexhtm

c:/website/web/img/photojpg

在此例中indexhtm中联接的photojpg应该怎样表示呢?

错误写法://img/photojpg

这种写法是不正确的,在此例中对于indexhtm文件来说//img/photojpg所代表的绝对路径是:c:/website/img/photojpg。

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

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

如何修改样式表的路径:

使用文本编辑器打开htm文件,查看源代码,在源代码的开头部分标记中间找到。“Href=”后面的内容就是css的路径,我们可以根据以上的知识进行相对路径的转换。

例:

c:/website/web/xz/indexhtm

c:/website/css/testcss

在此例中indexhtm中联接testcss文件,可以使用//css/testcss的相对路径来定位文件,完整的代码标记是:

错误写法举例:///css/testcss

这种写法是不正确的,在此例中对于indexhtm文件来说///css/testcss所代表的绝对路径是:c:/css/testcss

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

1、资源文件放在服务器下是完全没问题的,一个网站发布后也不会随便更新的。

2、如果资源文件过多、或都过大,是建议放到服务器下的,会占用服务器过大的空间,你可以在tomcat中再配置一个虚拟路径,指向一个盘符下一个文件夹(如:d:/images),在

tomcat

serverxml

中设置,然后你就可以用你的服务器地址+/img/+资源路径(注意:这个资源路径是相对d:/images的相对路径)去访问资源了

具体设置方法:

在conf目录下的serverxml文件里的里面加入

例如:

<

context

path=”test”

docbase=”f:\webroot\”/>

很多朋友都想知道java如何获取当前目录路径?下面就一起来了解一下吧~

1、利用SystemgetProperty()函数获取当前路径:

Systemoutprintln(SystemgetProperty("userdir"));//userdir指定了当前的路径

2、使用File提供的函数获取当前路径:

File directory = new File("");//设定为当前文件夹 try{ Systemoutprintln(directorygetCanonicalPath());//获取标准的路径 Systemoutprintln(directorygetAbsolutePath());//获取绝对路径 }catch(Exceptin e){} FilegetCanonicalPath()和FilegetAbsolutePath()大约只是对于new File("")和new File("")两种路径有所区别。 # 对于getCanonicalPath()函数,“"就表示当前的文件夹,而”“则表示当前文件夹的上一级文件夹 # 对于getAbsolutePath()函数,则不管””、“”,返回当前的路径加上你在new File()时设定的路径 # 至于getPath()函数,得到的只是你在new File()时设定的路径 比如当前的路径为 C:/test : File directory = new File("abc"); directorygetCanonicalPath(); //得到的是C:/test/abc directorygetAbsolutePath(); //得到的是C:/test/abc direcotrygetPath(); //得到的是abc File directory = new File(""); directorygetCanonicalPath(); //得到的是C:/test directorygetAbsolutePath(); //得到的是C:/test/ direcotrygetPath(); //得到的是 File directory = new File(""); directorygetCanonicalPath(); //得到的是C:/ directorygetAbsolutePath(); //得到的是C:/test/ direcotrygetPath(); //得到的是 另外:SystemgetProperty()中的字符串参数如下: SystemgetProperty()参数大全 # javaversion Java Runtime Environment version # javavendor Java Runtime Environment vendor # javavendorurl Java vendor URL # javahome Java installation directory # javavmspecificationversion Java Virtual Machine specification version # javavmspecificationvendor Java Virtual Machine specification vendor # javavmspecificationname Java Virtual Machine specification name # javavmversion Java Virtual Machine implementation version # javavmvendor Java Virtual Machine implementation vendor # javavmname Java Virtual Machine implementation name # javaspecificationversion Java Runtime Environment specification version # javaspecificationvendor Java Runtime Environment specification vendor # javaspecificationname Java Runtime Environment specification name # javaclassversion Java class format version number # javaclasspath Java class path # javalibrarypath List of paths to search when loading libraries # javaiotmpdir Default temp file path # javacompiler Name of JIT compiler to use # javaextdirs Path of extension directory or directories # osname Operating system name # osarch Operating system architecture # osversion Operating system version # fileseparator File separator ("/" on UNIX) # pathseparator Path separator (":" on UNIX) # lineseparator Line separator ("/n" on UNIX) # username User’s account name # userhome User’s home directory # userdir User’s current working directory

JAVA中获取路径 关键字: java中获取路径

1、jsp中取得路径:

以工程名为TEST为例:

(1)得到包含工程名的当前页面全路径:requestgetRequestURI() 结果:/TEST/testjsp (2)得到工程名:requestgetContextPath() 结果:/TEST (3)得到当前页面所在目录下全名称:requestgetServletPath() 结果:如果页面在jsp目录下 /TEST/jsp/testjsp (4)得到页面所在服务器的全路径:applicationgetRealPath("页面jsp") 结果:D:/resin/webapps/TEST/testjsp (5)得到页面所在服务器的绝对路径:absPath=new javaioFile(applicationgetRealPath(requestgetRequestURI()))getParent(); 结果:D:/resin/webapps/TEST

2、在类中取得路径: (1)类的绝对路径:ClassclassgetClass()getResource("/")getPath() 结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/ (2)得到工程的路径:SystemgetProperty("userdir") 结果:D:/TEST

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 什么相对路径?什么是绝对路径?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情