使用Express中的参数在URL上提供静态文件

时间:2017-05-20 14:43:07

标签: node.js express handlebars.js url-parameters

我正在使用Express的把手模板引擎。点击没有参数的端点时,我的所有静态文件都会被提供。当包含参数时不是这种情况。

app.engine('.hbs', hbs(handlebarsOptions));
app.set('view engine', '.hbs');

app.use(express.static('public'));

这是我尝试使用的端点。

app.get('/projects/:name', function(req, res) {
  if(req.params.name === 'batteryapp') {
    res.render('project', {name: 'BatteryApp'});
  }
});

我看过一个示例,如果你使用res.sendFile()显然有效。但是,使用模板引擎时必须使用res.render()。

1 个答案:

答案 0 :(得分:6)

听起来你没有使用模板中静态资源的绝对URL(以/开头),因此相对于/projects/batteryapp而不是根目录请求它们。

所以不要这样:

<script src="js/app.js"></script>

使用此:

<script src="/js/app.js"></script>