Express.static 在根目录下对于任何视图都很好用,但是当我添加一个子目录时它就失效了。
我猜 __dirname 会被更改为任何从
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)。
__dirname
每个请求都不会改变。为了解决这个问题,请指定您希望作为静态请求提供服务的URL以及您希望静态请求来自的目录结构。此外,如果您的问题是与res.render()
调用有关,则express.static()
与之无关。那些是通过模板布局引擎进行的正常文件操作,而不是通过中间件代码路径进行的。 - jfriend00