2013-08-02 2 views
4

Docpad에서 데이터가 유지되는 방식에 대한 아키텍처와 꽤 혼동 스럽습니다. 블로그 및 포럼에서 생성 된 내용에 메모리 내 (및/또는 아웃 디렉토리)가 사용됨을 알아야합니다. 그러나 Docpad의 판매 포인트 중 하나는 "완전히 파일 기반"입니다. 그것의 소리에서, Heroku 또는 임시 파일 시스템에 그것을 접대하는 것은 논리적 인 것처럼 보이지 않습니다. 누구든지 설명/설명을 해줄 수 있습니까?Docpad 지속성에 대한 설명이 필요합니다.

+0

Heroku 또는 Node.js를 지원하는 다른 서버에서 호스팅하는 이유는 웹 사이트에 동적 데이터가있는 경우입니다. DocPad는 완전히 정적 일 수 있지만, 반면에 DocPad는 완전히 동적 일 수 있습니다. 아니면 둘 다 될 수 있습니다. 그러나 웹 사이트의 내용이 동적 인 경우 또는 때때로 다시 생성하도록 웹 사이트를 필요로하는 경우 Node.js를 지원하는 서버가 필요합니다. 그 질문에 대답합니까? 그렇다면 그렇게 대답 할 수 있습니다. :) – greduan

+0

답변 주셔서 감사합니다. 나는 파일 업로드에 대해 언급하는 것을 잊었다. Docpad는 Heroku의 임시 파일 시스템에서 어떻게 처리합니까? 임시 파일 시스템은 영구적으로 아무 것도 쓰지 않습니다. 나는 아직도 Docpad 웹 사이트의 "완전히 파일 기반"과 혼동 스럽습니다. – 1001b

+0

정적 웹 사이트가 무엇인지 먼저 이해하고 싶을 것입니다. DocPad는 정적 웹 사이트 * 생성기 *입니다. 그것은 어디서나 배포 할 수있는 정적 웹 사이트를 생성합니다. 기본적으로 콘텐츠는 변경되지 않으며 항상 같은 방식으로 제공됩니다. 따라서 서버 측 로직이 진행되지 않으므로 웹 사이트를 제공하는 방법이 더 빠릅니다. "완전히 파일 기반"이라는 개념은 서버에 데이터베이스가 없다는 것을 의미합니다. – greduan

답변

7

DocPad는 차세대 웹 아키텍처로 선정되었습니다.

DocPad Architecture Vision http://d.pr/i/jmmZ+

이 워크 플로과 같이되는 : 우리가 완벽하게 부르는 이유 마인드 맵은 전시

  1. 수입은 모든 소스에서 데이터를 가져, 그것은 로컬 파일 시스템 또는 텀블러 수, 또는 mongo 데이터베이스.
  2. 이는 생성 시간에 DocPad 메모리 데이터베이스
  3. 에 주입 얻을, DocPad 다음 렌더링에 필요한 사항을 렌더링하고, 밖으로 디렉토리
  4. 동적 문서 (문서에 출력 정적 컨텐츠됩니다에 다시 렌더링 각 요청) 및 동적 능력 (서버 확장) 어떤 그런 의미에서

, DocPad는이다, 이제 메모리 데이터베이스에서 사용하고 파일 업로드, 연락처 양식, 검색 페이지와 같은 고급 멋진 물건을 수행 할 수 있습니다 정적 사이트 생성 기능과 동적 사이트 생성 기능을 갖춘 차세대 웹 아키텍처 전통적인 웹 아키텍처와 DocPad를 구분하면 전통적인 웹 아키텍처는 DocPad가 동일하게 간주하고 확장자로 구분하여 콘텐츠와 템플릿을 분리 된 존재로 간주합니다. 전통적인 웹 아키텍처는 기본적으로 동적 인 반면, 정적 사이트 생성은 캐싱을 통해 이루어지며, 다른 방법으로는 기본적으로 정적 인 것입니다.

메모리 내 데이터베이스 상황에서이 모든 것을로드하기 때문에 생성 및 생성 후 성능 저하로 고통 받고 있습니다. Discussion here. 그러나 충분한 시간과 자원으로 해결할 수없는 것은 없습니다. 이와 상관없이 DocPad는 비동기 특성 (빠른 생성)뿐만 아니라 정적 특성 (빠른 요청)으로 인해 기존 웹 아키텍처보다 더 빠릅니다.

당신은 파일 업로드 처리 할 방법의 측면에서

:

당신이 DocPad와 정적 인 웹 사이트를 수행하는 경우
  • , 당신은 당신이 너무 업로드를 할 것이라는 점을 다른 곳 백엔드 API 서버가와로드 것을 데이터를 단일 페이지 응용 프로그램 스타일로 DocPad에 저장합니다.

  • DocPad로 동적 웹 사이트를 운영하는 경우 Heroku와 같은 서버에서 DocPad를 호스팅하고 Amazon S3, Dropbox 또는 MongoDB 등의 대상에 파일 업로드를 처리하도록 서버를 확장합니다. 그런 다음 templateData를 통해 파일을 링크로 노출 시키거나 파일을 DocPad 메모리 내 데이터베이스에 파일로 삽입 할 수 있습니다. 어느 쪽을 선택했는지는 업로드를 참조하거나 DocPad 유니버스의 일류 시민으로 취급하고 싶은지 여부입니다 (URL과 페이지 만 가져옵니다).

동적 사이트의 경우 정적 사이트 + 단일 페이지 응용 프로그램 접근 방식을 사용합니다.반응 형 디자인, 오프라인 지원, 정말 빠른 UX와 같은 이점을 얻습니다. 그렇게하지 않으면, 어떤 웹 아키텍처를 구축했는지에 관계없이 동적 사이트 접근 방식으로 약간의 어려움을 겪을 수 있습니다.

1

글쎄, 난 벤자민의 우수한 explaination을 위로 할 수는 없지만이 TLDR의 explaination를 원하는 경우 :

docpad는 (가장 큰 사용의 경우)에 사용되는 정적 웹 사이트, - 라 GitHub의 페이지 또는 이전을 생성 1990 년대의 웹 사이트. 당신은 당신이 좋아하는 것 (Jade, eco, coffeescript 등)으로 당신의 페이지를 쓸 수 있으며 페이지를 컴파일하고 HTML 파일을 출력 할 것입니다. 그것을 "한 번 컴파일 - 서버 - 영원히"일이라고 생각하십시오.

동적 사이트을 원하는 경우 다른 사이트의 동적 데이터를 가져 오거나 즉시 생성하는 데 Nodejs를 사용하고 싶습니다.

Heroku의 임시 파일 시스템에 대한 우려 (정확히 어떻게 작동하는지 알지 못함)로 Amazon S3를 사용할 수 있습니다. 체크 아웃 this

관련 문제