如何区分相对路径 与 绝对路径?

在网页中有很多需要使用我们URL路径的场景,包括a标签的href、link标签的href、script标签的src、imag标签的src、form中的action、ajax请求的url等等等等。它们都可以使用相对路径和绝对路径来引入文件,那么,我们如何区分相对路径与绝对路径呢?

一、相对路径

(1)概念:

相对路径是指相对于当前工作目录的路径。它依赖于你当前所在的位置,而不是从文件系统的根目录开始。相对路径以当前目录(./)或父目录(../)作为起点,然后列出到达目标文件或目录所需的相对路径。

相对路径在发送请求时,需与当前页面url路径进行计算后得到完整url,再发送请求。在我们的学习阶段用的较多。在 Node.js 中,使用相对路径可以简化文件或目录的引用,特别是在你的应用程序有多个文件和目录时。

(2)相对路径形式:

例如,假设我的当前工作目录是 /home/user/project,我可以使用相对路径 ./file.txt 来引用 file.txt 文件。如果我想要引用父目录下的father 中的childfile.txt 文件,我可以使用相对路径../father/childfile.txt

二、绝对路径

(1)概念:

绝对路径是指从文件系统的根目录开始的完整路径。它不会受到当前工作目录的影响。绝对路径以文件系统的根目录(如 / 或 C:\开始,然后依次列出到达目标文件或目录所需的每个子目录。

绝对路径的可靠性强,在项目中运用较多。在 Node.js 中,使用绝对路径可以确保准确地引用文件或目录,无论当前工作目录是什么。

(2)绝对路径形式:

例如:<a href="http://www.baidu.com">百度</a>

例如:在 Linux 或 macOS 上,绝对路径可能类似于 /home/user/project/file.txt。在 Windows 上,绝对路径可能类似于 C:\Users\user\project\file.txt

三、如何区分node.js中的相对路径与绝对路径?

使用 Node.js 内置的 path 模块。path 模块提供了一系列实用函数来处理文件和目录路径。

以下是一些常用的 path 模块函数:

(1)检查给定路径是否是绝对路径/相对路径

path.isAbsolute(path)    

代码示例:在我的nodejs下的my文件夹下建立一个示例代码,里面写了我如下所有的示例代码,如图所示:

const path=require('path');
// 判断是否绝对路径
const absolutePath='/my/text.js';
console.log(path.isAbsolute(absolutePath)); //输出true
// 判断是否相对路径
const relativePath = './file.txt';
console.log(path.isAbsolute(relativePath)); // 输出false。反向逻辑,证明是相对路径

(2)将一个或多个路径片段解析为绝对路径。如果参数是绝对路径,它将直接返回。否则,它将根据当前工作目录进行解析

path.resolve(path1, [path2], [...])
//解析为绝对路径
const resolvedPath = path.resolve(__dirname, relativePath);
console.log(resolvedPath);  //D:\node.js\my\file.txt

(3)返回从 from 路径到 to 路径的相对路径

path.relative(from, to)
//返回从 /my 路径到 resolvedPath 路径的相对路径。
const relativeToProject = path.relative('/my', resolvedPath);
console.log(relativeToProject);  //..\node.js\my\file.txt

(4)返回路径的目录名

path.dirname(path)
//获取路径的目录名
const directory = path.dirname(resolvedPath);
console.log(directory);  //D:\node.js\my

(5)返回路径的文件名部分,可以选择包括文件扩展名

path.basename(path, [ext])
//获取路径的文件名
const fileName = path.basename(resolvedPath);
console.log(fileName); // 输出file.txt

通过这些函数,我们可以更容易地在 Node.js 中操作和处理绝对路径和相对路径。

在node.js中,建议使用绝对路径

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想想aw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值