2016-01-04 29 views
0

Express.static對於根目錄中的任何視圖都很好,但是當我添加一個子目錄時它會中斷。Express.Static不能用於子目錄

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

作品:

//Homepage 
router.get('/', isAuthenticated, function (req, res, next) { 
    res.render('index.hbs', {user: req.user, message:req.flash('message')});  //add add'l data {title:'Express', addlData:'SomeData', layout:'layout'} 
}); 

不起作用:

//Organization Profile 
router.get('/orgprofile/:username', function(req,res,next){ 
    User.findOne({username:req.params.username}, function(err,docs){ 
     res.render('orgprofile.hbs',{orgdetails:docs}); 
    }); 
}); 

我猜__dirname更改爲任何目錄get請求從製作,但我只是想對所有靜態請求使用根(/ public)目錄。

謝謝!

+0

'__dirname'不按要求改變。要解決此問題,請顯示您希望作爲靜態請求提供的URL以及您希望靜態請求來自的目錄結構。而且,如果這是你的問題,'express.static()'與'res.render()'調用無關。這些是通過模板佈局引擎的正常文件操作,而不是通過'express.static()'所在的中間件代碼路徑。 – jfriend00

回答

1

使用這種方式:

app.use('/', express.static(__dirname + '/public')); 
app.use('/orgprofile', express.static(__dirname + '/public')); 
+0

謝謝!它基本上是用「(__dirname +'/ public')」替換'orgprofile'「嗎? – Tyler

+0

是的,它設置所有來自目錄的句柄上的請求。 –