Node.js 使用visual node会导致express不提供静态文件
我有一个正在工作的项目,但我决定尝试Visual Node(),以便在Visual Studio环境中使用Node.js 出于某种原因,该行不影响express为静态文件提供服务:Node.js 使用visual node会导致express不提供静态文件,node.js,visual-studio-2012,express,Node.js,Visual Studio 2012,Express,我有一个正在工作的项目,但我决定尝试Visual Node(),以便在Visual Studio环境中使用Node.js 出于某种原因,该行不影响express为静态文件提供服务: app.use(express.static(path.join(__dirname, 'client'))); 当试图: res.sendfile('client/views/index.html'); 引擎在错误路径下搜索文件: 404 Error: ENOENT, stat 'C:\Windows\sys
app.use(express.static(path.join(__dirname, 'client')));
当试图:
res.sendfile('client/views/index.html');
引擎在错误路径下搜索文件:
404 Error: ENOENT, stat 'C:\Windows\system32\client\views\index.html'
问题是'C:\Windows\system32\'
来自哪里
与此相反,应该有我的项目文件夹。首先,这是:
app.use(express.static(path.join('client'))代码>
是一个中间件适配器,因此express将自动为客户端
文件夹中的静态文件提供服务(使用\uu dirname
),以建立当前本地目录作为参考
当你使用
res.sendfile('client/views/index.html')代码>
Node和express将使用当前本地目录+路径为文件提供服务。但是,当您使用Visual Node时,它似乎没有正确设置存储应用程序的本地路径,因此不幸地将该路径设置为system32
目录
如果切换到存储和运行应用程序的目录,您可以看到应用程序的工作方式:
> cd c:\dev\greatwebapp
> node app.js
(当然用真名代替)
您将看到如下内容:
Express server listening on port 3000
然后,您应该能够将浏览器导航到其中一条管线/路径,并且文件应正确显示。似乎是Visual Node有问题:
要解决此问题,您可以:
res.sendfile(uu dirname+'/client/views/index.html')代码>希望他们能把它修好。感谢您的解决方案!