如何在Nodejs中为嵌套路由设置静态路径到'public'文件夹

时间:2017-05-09 04:42:00

标签: node.js

app.js

app.engine('.hbs', expressHbs({
        defaultLayout: 'layout', 
        extname: '.hbs',
        layoutsDir:'views/layouts',
        partialsDir:'views/partials'
}));
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', '.hbs');
app.use(express.static(path.join(__dirname, 'public')));

它在此路线中正常工作[admin.js]

router.get('/', function(req, res, next){
    res.render('admin/admin', {title: 'Admin'});
  });
});
//will render http://localhost:3000/admin

然而,当我在[admin.js]

中添加新路线时
router.get('/insert-scene', function(req, res, next){
    res.render('admin/insert-scene', {title: 'Insert Scene'});
});
//will render http://localhost:3000/admin/insert-scene

示例:

<link href="./stylesheets/site.css" rel="stylesheet">    
http://localhost:3000/public/stylesheets/site.css[work][/admin] 
http://localhost:3000/admin/stylesheets/site.css[wrong path][/admin/insert-scene]

公共文件夹在此路由中不起作用,因此hbs视图只在我的ref源中呈现/ admin / ....如何解决这个问题?

1 个答案:

答案 0 :(得分:-1)

不要使用节点提供静态文件,而节点可以处理它,这不是该技术的预期用例。

使用特定的Web服务器,例如nginx或CDN。