我尝试检查服务器上是否存在文件(例如css文件):
// parse url and extract URL path
var pathname = url.parse(req.url).pathname;
fs.exists(pathname, function (exist) {
// if the file is not found, return 404
if(!exist) {
console.log('NOT EXISTING: '+pathname);
res.statusCode = 404;
res.end(`File ${pathname} not found!`);
return;
}
..... blah blah
}
文件在那里,但输出为:
NOT EXISTING: /assets/css/bootstrap.min.css
我在做什么错?
答案 0 :(得分:0)
尝试在您的路径前添加__dirname
:
var pathname = url.parse(req.url).pathname;
fs.exists(__dirname + pathname, function (exist) {
// if the file is not found, return 404
if(!exist) {
console.log('NOT EXISTING: '+pathname);
res.statusCode = 404;
res.end(`File ${pathname} not found!`);
return;
}
..... blah blah
}
当路径以/
开头时,NodeJS将从操作系统的根目录开始查找文件。通过提供__dirname
,您可以告诉NodeJS从当前目录中搜索。
答案 1 :(得分:0)
使用 __ dirname 和 path.join(URL)创建绝对路径:
path.join(__dirname, url)