2013-04-07 231 views
2

例如,我想根據用戶訪問的二級域名,定位到相應的目錄:如何提供靜態文件動態?

app.use(express.static(path.join(__ dirname,'/ public'))) ;

TO:

app.use(express.static(path.join(__目錄名稱, '/' + + '/公共')));

回答

2

假設您在文件夾[domain]/public中有一個名爲「foo.png」的文件。 使用app.use(express.static(path.join(__dirname, '/'+domain+'/public')));將使所有人都可以從http://localhost/foo.png獲得該文件。根據我對你的問題的理解,這不是你想要的。

你應該尋找res.sendfile和做類似

app.get('/:username/:file', function(req, res){ 
    res.sendfile(path.join(__dirname, req.params.username, req.params.file)); 
}); 

這種方式,您還可以使用中間件,以確保用戶無法訪問其他用戶的文件添加一些安全。

如果您並不介意安全事宜,則可以簡單地將所有用戶的文件夾添加到公用文件夾中(您可以選擇該文件夾的任何名稱),並僅使用app.use(express.static(path.join(__dirname, '/public')));

這樣你就可以訪問類似http://localhost/[username]/foo.png的文件