2013-09-01 64 views
0

我有一個工作項目,但我決定嘗試視覺節點(http://www.visualnode.info/readme)以便在Visual Studio環境中使用node.js。使用視覺節點原因快遞不提供靜態文件

出於某種原因,該行不會影響快遞爲靜態文件:

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\'從哪裏來的?

而不是,應該有我的項目文件夾。

回答

0

首先,這樣的:

app.use(express.static(path.join(__dirname, 'client')));

是一箇中間件適配器,以便快遞會(使用__dirname)自動提供從client文件夾的靜態文件確定當前的本地目錄作爲參考。

當您使用

res.sendfile('client/views/index.html');

節點,並表示將使用當前的本地目錄+路徑提供服務的文件。但是,看起來當您使用Visual Node時,它不能正確設置存儲應用程序的本地路徑,所以路徑不幸設置爲system32目錄。

你可以看到,如果你切換到您的應用程序存儲和運行的目錄程序應該如何工作的:

> cd c:\dev\greatwebapp 
> node app.js 

(替代課程的真實姓名)

你看到類似的東西:

Express server listening on port 3000 

然後,你應該能夠導航到瀏覽器到你的路線/路徑和文件之一應該正確顯示。看起來可能是可視節點的問題:http://redgatesupport.red-gate.com/entries/25428576-Working-Directory-Issues

要解決的問題,您可以:

res.sendfile(__dirname + '/client/views/index.html');

+0

希望他們會得到它修復。感謝解決方案! – ohadinho