2014-06-09 2 views
0

Express 애플리케이션에서 일반적인 HTML 헤더 정보를 어떻게 표시하는지 궁금합니다. 모든 페이지에서 공통 메뉴 또는 헤더를 웹 응용 프로그램에 표시하려고 시도하지만 내 서버의 모든 HTML 파일에 html을 복사하고 붙여 넣지 않고이를 수행하는 방법을 알아낼 수 없습니다. 나는 이것이 루트로 할 수 있다고 생각한다. 내 응용 프로그램과 같이 구성되어있다 :익스프레스 및 노드 JS에서 일반적인 HTML 표시

/ web root 
    - server.js // main web server 
    /public 
    - css, 3rd party js files, images 
    /routes 
    - index.js includes renders to seperate pages 
    /views 
    - jade and html files. 

답변

1

당신은 당신이 실제로 경로로이 작업을 수행하지 않습니다 제이드를 사용하는 경우, 대신 당신은 레이아웃을 사용합니다. express-cli 도구를 사용하여 프로젝트를 생성 한 경우 view/homepage.jade 파일에서 layout.jade 파일을 사용하여 원하는 것을 수행 할 수 있습니다. 좀 더 복잡한 예제를 원하는 경우

, 여기에이 부트 스트랩을 기반으로 내가 만든 데모 프로젝트입니다 :

extends layout 

block content 
    your page's content here 
: 어느 경우 https://github.com/newz2000/template-test-jade

이 아이디어는이 같은 구문을 사용하는 파일이됩니다

이 그런 다음 layout.jade 파일은 다음과 같은 라인을 갖게됩니다

block content 

을 때 res.render() 첫 번째 파일은 처음 레이아웃을 렌더링하고 layout.jade 파일에서 block content을 가져 와서 페이지 내용으로 바꾸십시오.

  1. Handlebars.js는 레이아웃과 파셜을 지원하는 더 HTML과 같은 템플릿 언어, 그래서 당신은 당신의 목표에 그것을 이용할 수있다 :

    다른 두 가지 고려해야 할. 작동 시키려면 몇 가지 단계가 있지만 어렵지 않습니다. 여기에 문서화했습니다 : http://www.bearfruit.org/2014/01/20/node-js-showdown-handlebars-compared/

  2. 일반 정적 HTML 파일 만 사용하십시오. 예, Node.js가 공통 헤더를 관리하는 능력을 잃어 버리지 만 평범한 HTML을 얻게됩니다. index.html을 공용 폴더에 넣은 다음 충돌하는 경로가 없는지 확인하면 해당 경로가 홈페이지로 제공됩니다.

+0

우박, 나는 정말로 HTML을 선호하지만 나는 옥을 배울 수 있다고 생각한다. 이것이 유일한 방법입니까? 옥과 HTML을 사용할 수 있는지 알고 있습니까? –

+0

Jade와 HTML은 잘 작동하지 않지만 쉽게 다른보기 엔진으로 전환 할 수 있습니다. 한 가지 단점은 부분 및 레이아웃을 지원할 때 비취가 가장 잘 통합 된 것입니다. 그러나 Handlebars.js는 그것을 지원합니다. 여기서는 블로그 게시물을 작성했습니다 : http://www.bearfruit.org/2014/01/20/node-js-showdown-handlebars-compared/ 그리고 유일한 비 HTML 태그는 레이아웃 및/또는 부분을 활용하기 위해 {} 태그입니다. 백본 또는 각도를 사용하는 단일 페이지 응용 프로그램에 일반적입니다. – newz2000

+0

일반 .html 파일을 공용 폴더에 저장하는 또 다른 옵션입니다. index.html을 만든 다음 홈페이지에 대한보기를 포함하지 않으면 정적 파일이 제대로 제공됩니다. 이 방법이 효과가 있다면 제 대답을 업데이트하여 언급하겠습니다. 이 헤더에 대한 재사용 비트를 제공하지 않습니다. – newz2000

관련 문제