2017-05-20 5 views
1

Express와 함께 핸들 막대 템플릿 엔진을 사용하고 있습니다. 매개 변수없이 끝점을 치면 모든 정적 파일이 처리됩니다. 매개 변수가 포함 된 경우에는 해당되지 않습니다.Express에 매개 변수가있는 URL에 정적 파일 제공

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()를 사용해야합니다.

답변

3

템플릿의 정적 리소스에 절대 URL (예 : /으로 시작)을 사용하지 않는 것처럼 들리므로 루트가 아닌 /projects/batteryapp을 기준으로 요청됩니다. 이 같은

그래서 대신 뭔가 :

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

사용이 : 내 문제였다

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

. 당신의 도움을 주셔서 감사합니다! –

+0

이것은 또한 나의 동일한 문제점을 고쳤다. 하지만 get ('/ polls/all'...)을 사용하면이 문제가 발생하지 않습니다. 그것은 내가 할 때 ('/ poll/: id'...) 발생합니다. 이유를 설명해 주시겠습니까? – Sid24

+0

@ Sid24 정보 없음 – robertklep