Express.Static不适用于子目录

Tyl*_*ler 3 javascript node.js express

Express.static适用于根目录中的任何视图,但是在添加子目录时会中断。

app.use(express.static(path.join(__dirname, 'public')));
Run Code Online (Sandbox Code Playgroud)

作品:

//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'}
});
Run Code Online (Sandbox Code Playgroud)

不起作用:

//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});
    });
});
Run Code Online (Sandbox Code Playgroud)

我猜__dirname更改为get发出请求的目录,但我只想对所有静态请求使用根(/ public)目录。

Vik*_*ari 6

使用这种方式:

app.use('/', express.static(__dirname + '/public'));
app.use('/orgprofile', express.static(__dirname + '/public'));
Run Code Online (Sandbox Code Playgroud)

  • 否决是因为您必须为您拥有的每个子文件夹手动创建路由。 (2认同)
  • 嘿@WonderDog,答案是基于快递的限制。我知道这不是一个很好的解决方案。使用 Express 提出功能请求可能比否决唯一现有的解决方案更好。 (2认同)