2012-01-11 2 views
16

Node.js로 조금 놀았습니다. 나는 최근에 익스프레스에서 놀기 시작했고 기본 앱을 설정하고있다. 내 뷰 템플릿 엔진으로 Handlebars를 사용하고 싶었지만 벽을 치고 있습니다. "index.html"보기를 찾지 못했습니다.NodeJS + Express + 핸들 바 - "index.html"보기를 찾지 못했습니다.

저는 app.js와 같은 디렉토리에 index.html이 있습니다. 아래 코드는 index.html을 찾는 데 아무런 문제가 없을 것입니다.

나는 주위를 수색했으나 옥 이외의 모든 것을 포괄하는 예가 드물 것 같습니다. 누구나이 콤보를 경험 한 적이 있습니까?

미리 감사드립니다.

var express = require('express') 
    , app = express.createServer(); 

app.configure(function(){ 
    app.set('view engine', 'handlebars'); 
    app.set("view options", { layout: false }) 
}); 



app.get('/', function(req, res){ 

    var data = { 
     name: "Ford Prefect", 
     home: "a small planet somewhere in the vicinity of Betelgeuse" 
    } 

    res.render('index.html', data); 
}); 

app.listen(3000); 

업데이트 :

내가 잃어버린 내 설정에서

app.set('views', __dirname + '/'); 
app.register('.html', require('handlebars')); 

...는 지정대로 '.html 중에서'의 등록이 매우 중요하다는 것을 보인다 .html과 핸들 바 협회 ...

나는 이것이 누군가를 돕기를 바란다 ...

나는 멍청하기 때문에 7 시간 내 자신의 질문에 답할 수는 없지만 누구나 완벽한 작업 예제가 필요하면 내일 게시 할 수 있습니다 ...

+4

"Ford Prefect" – fent

+1

.html 대신 .handlebars 파일 이름을 지정하면 일반 html 파일이 아닌 것처럼 보일 수 있습니다. 곧 [.hbs] (https://github.com/wycats/handlebars.js/issues/174)도 사용할 수 있습니까? – MyGGaN

답변

17

기본적으로 폴더 스크립트가있는 디렉토리에서 views이라고합니다. 다른 디렉토리를 사용하는 경우 지정해야합니다.

app.set('views', __dirname + '/views'); 

익스프레스는보기를 찾는 위치에 대한 자세한 정보도 알려주므로 정확하게 찾고있는 위치를 알 수 있습니다.

+0

정확히. 진실은 말하기를,이 결론은 나에게 2 단계로 도착했다. 첫 번째 줄을 발견했는데, 나는 처음으로 줄 1을 발견했다. 오류 : 모듈 'html'을 찾을 수 없다. 이야기가 진행됨에 따라 2 행이 해결되었습니다. 내 어리 석음이 누군가를 돕기를 바랍니다. – mattezell