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

我正在使用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()。

这听起来像你没有使用模板中的静态资源的绝对URL(以/开头),所以他们被请求相对于/projects/batteryapp而不是根。

所以不是这样的:

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

用这个:

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