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

Rea*_*son 2 url-parameters node.js express handlebars.js

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

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

app.use(express.static('public'));
Run Code Online (Sandbox Code Playgroud)

这是我尝试使用的端点.

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

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

rob*_*lep 6

听起来你没有使用/模板中静态资源的绝对URL(以a开头),所以它们是相对/projects/batteryapp而不是root 来请求的.

所以不是这样的:

<script src="js/app.js"></script>
Run Code Online (Sandbox Code Playgroud)

用这个:

<script src="/js/app.js"></script>
Run Code Online (Sandbox Code Playgroud)