一个非常简单的问题,但让我很困扰。以下两种情况有什么区别?
无论客户端URL来源是我刚提到的两种情况中的哪一种,都不会影响结果。另一方面,如果按照以下方式(以无斜杠开头)处理请求,将始终收到404错误。
index.html
- script src="script/a.js"
- script src="/script/a.js" // starting with slash
为什么我的服务器可以处理这个请求(以斜杠开头)
app.get('/script/a.js', function(req, res){ // with slash
res.sendfile(__dirname + '/realfolder/script/a.js');
});
无论客户端URL来源是我刚提到的两种情况中的哪一种,都不会影响结果。另一方面,如果按照以下方式(以无斜杠开头)处理请求,将始终收到404错误。
app.get('script/a.js', function(req, res){ // without slash
res.sendfile(__dirname + '/realfolder/script/a.js');
});
在我看来,路径从'/'开始表示应用程序的根目录,其他路径则是相对于__dirname的路径。但我不明白为什么我的服务器无法处理app.get('script/a.js')这个请求,因为它没有以斜杠开头。
有什么问题吗?
main
文件夹中吗?还是在subfolder1
内部?在您的情况下,您的Node应用程序在哪里运行?请参见:http://nodejs.org/docs/v0.4.2/api/process.html#process.cwd 或使用绝对路径。 - Salvatorelabprocess.cwd()
。结合__dirname
,它将帮助你解决任何相对路径的问题。 - Salvatorelab