Node.js NodeJS url请求,绝对还是相对?

Node.js NodeJS url请求,绝对还是相对?,node.js,Node.js,一个非常简单的问题,但让我很困扰 以下两种情况有什么区别 index.html - script src="script/a.js" - script src="/script/a.js" // starting with slash 以及为什么我的服务器可以提供此请求(以斜杠开头) 不管客户端的url src是我刚才提到的两种情况中的哪一种 另一方面,如果我以以下方式服务请求(开始时没有斜杠),我总是得到404错误 在我看来,路径从“/”开始表示应用程序的根文件夹,另一个表示从_di

一个非常简单的问题,但让我很困扰

以下两种情况有什么区别

index.html

 - script src="script/a.js"
 - script src="/script/a.js"  // starting with slash
以及为什么我的服务器可以提供此请求(以斜杠开头)

不管客户端的url src是我刚才提到的两种情况中的哪一种

另一方面,如果我以以下方式服务请求(开始时没有斜杠),我总是得到404错误

在我看来,路径从“/”开始表示应用程序的根文件夹,另一个表示从_dirname开始的相对路径。而且我不明白为什么我的服务器不能处理app.get('script/a.js')这个一开始没有斜杠的请求


有什么问题吗?

当路径以斜杠开始时,表示它是绝对路径。 当它不是以斜杠开始时,它是一个相对路径

让我们看一个例子。假设我的硬盘上只有以下文件夹:

main
    subfolder1
    subfolder2
        lastfolder
现在假设我们在文件夹
子文件夹2
中,我们想加载
lastfolder
中的文件。我们可以使用相对路径加载它:

lastfolder/file.txt
/main/subfolder2/lastfolder/file.txt
但我们也可以使用绝对路径:

lastfolder/file.txt
/main/subfolder2/lastfolder/file.txt

这两个路径都是正确的,但是如果我们移动到另一个文件夹(例如,如果我们在
子文件夹1
),相对路径可能会失败,而绝对路径将始终是正确的(当然,如果我们不修改文件夹)。

谢谢,我想我知道这个概念。但是我仍然不明白为什么我的服务器不能处理app.get('script/a.js')这个请求,而这个请求一开始就没有飞溅?好吧,当一个相对路径不起作用时,第一个问题是:我在哪里?我是否在
main
文件夹中?在
子文件夹1中
?在您的情况下,节点应用程序在哪里运行?请参阅:或使用绝对路径。只需确保一件事,您的意思是当出现失败的相对路径时,服务器端将尝试从应用程序根目录中查找此文件(如您所说的process.cwd())?不,如果失败,则失败。所以你必须确保它不会失败。这就是为什么我将您指向
process.cwd()
。这与
\uuu dirname
相结合,将帮助您解决任何有关相对路径的问题。