web中的URL路径——绝对路径和相对路径

本文解释了绝对路径和相对路径的概念及其在Web项目中的应用。通过实例演示如何使用这两种路径来引用文件,如图片和HTML文件,并强调了相对路径在实际开发中的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自身理解

绝对路径是指文件在硬盘上的真实路径,而相对路径指的是相对于另一个文件来书,本文件的路径。(个人理解是,既然能用相对路径表示那也就说明了这两个问价同属于一个文件集下,如果一个在你的电脑,一个在我的电脑那也就无从可来所谓的相对路径,甚至说是在同一个电脑中一个在E盘一个在C盘)。但是在做web项目时应该采用相对路径,绝对路径容易造成文件的寻找失败。打个比喻就是,绝对路径就好比在地球上时以地球来定位宇航员与飞船中某个物品的位置,但是当他们脱离了太阳系,两者之间的位置再通过地球来定位就不对了。如果他们以飞船为参考系那就可以清楚的定位宇航员与飞船中某个物品的位置时就容易的多了。

下面的实例帮大家理解(引用自网络):

绝对路径是指文件在硬盘上真正存在的路径。比如“bg.jpg”这个图片是存放在硬盘的“E:\book\网页布局代码\第2章”文件夹下。那么 “bg.jpg”这个图片的绝对路径就是“E:\book\网页布\代码\第2章\bg.jpg"。

比如上面的样例,“s1.htm” 文件中引用了“bg.jpg”图片。因为“bg.jpg”图片相对于“s1.htm”来说。是在同一个文件夹的,那么要在“s1.htm”文件中使用下面代 码后。仅仅要这两个文件的相对位置没有变(也就是说还是在同一个文件夹内)。那么不管上传到Webserver的哪个位置,在浏览器里都能正确地显示图片。

      <body background="bg.jpg">

再 举一个样例。如果“s1.htm”文件所在文件夹为“E:\book\网页布局\代码\第2章”,而“bg.jpg”图片所在文件夹为“E:\book\网页 布局\代码\第2章\img”,那么“bg.jpg”图片相对于“s1.htm”文件来说。是在其所在文件夹的“img”子文件夹里,则引用图片的语句应该 为:

      <body background="img/bg.jpg">  

   注意:相对路径使用“/”字符作为文件夹的分隔字符,而绝对路径能够使用“\”或“/”字符作为文件夹的分隔字符。因为“img”文件夹是“第2章”文件夹下的子文件夹,因此在“img”前不用再加上“/”字符。

在 相对路径里常使用“../”来表示上一级文件夹。如果有多个上一级文件夹。能够使用多个“../”,比如“http://www.cnblogs.com/”代表上上级文件夹。

如果 “s1.htm”文件所在文件夹为“E:\book\网页布局\代码\第2章”,而“bg.jpg”图片所在文件夹为“E:\book\网页布局\代码”。那 么“bg.jpg”图片相对于“s1.htm”文件来说,是在其所在文件夹的上级文件夹里。则引用图片的语句应该为:

      <body background="../bg.jpg">  

再举一个样例,如果“s1.htm”文件所在文件夹为“E:\book\网页布局\代码\第2章”,而“bg.jpg”图片所在文件夹为“E:\book\网 页布局\代码\img”。那么“bg.jpg”图片相对于“s1.htm”文件来说,是在其所在文件夹的上级文件夹里的“img”子文件夹里,则引用图片的语句 应该为:

      <body background="../img/bg.jpg"> 

### Java 中的绝对路径相对路径 #### 绝对路径 绝对路径是指从根目录开始描述文件或目录位置的方式。对于Java应用程序而言,在Windows操作系统下,绝对路径可能类似于`C:\Users\username\Documents\example.txt`;而在Linux或MacOS系统中则是像`/home/user/documents/example.txt`这样的形式[^2]。 ```java // 使用绝对路径创建File对象实例 File absFilePath = new File("C:\\path\\to\\your\\file.txt"); ``` #### 相对路径 相对路径则依赖于当前工作目录来定位目标文件的位置。在Java项目里,默认的工作目录通常是项目的根目录(即包含`src`, `pom.xml`等文件的那个文件夹),而classpath指的是编译后的类文件所在的默认输出位置——`target/classes`。因此当提到相对于项目的根路径时,可以简单理解为基于此起点构建出来的路径表达方式[^1]。 ```java // 假设main方法所在源码位于 src/main/java/com/package/Main.java, // 那么下面这条语句表示的是相对于项目根目录的一个相对路径。 File relFilePath = new File("./data/input.txt"); ``` 需要注意的一点是在Web应用开发场景下,涉及到URL映射时,“绝对路径”的概念会有所扩展,它不仅包含了物理磁盘上的完整路径信息,还涉及到了HTTP请求中的上下文路径部分。例如: - 当通过浏览器发送GET请求访问某个Servlet程序时使用的URL形如`http://localhost:8080/myapp/responseDemo2`; - 此处`myapp`即是所谓的“虚拟路径”,它是部署期间指定的应用名称前缀; - 如果要实现页面间的跳转或是资源加载等功能,则应当采用以斜杠开头的形式作为绝对路径,如`/myapp/resource/path`,并借助`request.getContextPath()`动态获取这部分内容以便适应不同环境下的配置差异[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值