Express.Static不适用于子目录

时间:2016-01-04 18:02:46

标签: javascript node.js express

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请求的目录,但我只想将root(/ public)目录用于所有静态请求。

2 个答案:

答案 0 :(得分:4)

以这种方式使用:

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

答案 1 :(得分:0)

问题不是由express.static()表达式引起的。可能是由于href值错误。 express.static():

app.use(express.static(__dirname + "/public"));

参考:

<link rel="stylesheet" type="text/css" href="/stylesheets/main.css">