例如,我想根據用戶訪問的二級域名,定位到相應的目錄:如何提供靜態文件動態?
app.use(express.static(path.join(__ dirname,'/ public'))) ;
TO:
app.use(express.static(path.join(__目錄名稱, '/' + 域 + '/公共')));
例如,我想根據用戶訪問的二級域名,定位到相應的目錄:如何提供靜態文件動態?
app.use(express.static(path.join(__ dirname,'/ public'))) ;
TO:
app.use(express.static(path.join(__目錄名稱, '/' + 域 + '/公共')));
假設您在文件夾[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
的文件