2013-08-02 2 views
4

Я довольно смущен архитектурой, по которой данные сохраняются в Docpad. Из блогов и форумов, которые я узнал в памяти (и/или вне директории), используется для сгенерированного содержимого. Но одна из точек продажи Docpad - «полностью основанная на файлах». Из его звука, размещение его на Heroku или любой эфемерной файловой системе не кажется логичным. Может ли кто-нибудь дать объяснения/разъяснения?Нужно объяснять постоянство Docpad

+0

Причина, по которой вы размещаете ее на сервере, таком как Heroku или какой-либо другой сервер с поддержкой Node.js, если у вас есть динамические данные на вашем сайте. DocPad может быть полностью статичным, с другой стороны, он может быть полностью динамичным. Или это может быть и то, и другое. Но если что-либо на вашем веб-сайте динамично или вам нужен ваш веб-сайт для регенерации время от времени, вам нужен сервер с поддержкой Node.js. Отвечает ли это на ваш вопрос? Если да, скажите так, я могу ответить на него. :) – greduan

+0

Спасибо за ответ. Я забыл упомянуть о загрузке файла. Как Docpad справляется с этим в эфемерной файловой системе Heroku? Эфемерная файловая система ничего не пишет. Извините, я все еще немного смущен «полностью основанным на файлах» с сайта Docpad. – 1001b

+0

Возможно, вам захочется понять, что такое статический веб-сайт. Вот что такое DocPad, статический генератор *. Он создает статический веб-сайт, который можно развернуть в любом месте. В основном контент не меняется, он всегда подаётся одинаково, это делает его более удобным способом обслуживания веб-сайтов, поскольку логики на стороне сервера не происходит. Идея «полностью основанная на файлах» означает, что на сервере нет базы данных. – greduan

ответ

7

DocPad размещен как веб-архитектура следующего поколения. Это MINDMAP демонстрирует, почему мы называем это, что идеально:

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

Технологический процесс быть примерно так:

  1. Импортеры приносят данные из любого источника, будь то локальная файловая система, или Tumblr, или база данных монго.
  2. Они получают впрыскивается в DocPad в памяти базы данных
  3. На время генерации, DocPad будет оказывать, что должно быть оказаны и выводить статическое содержимое в из каталога
  4. Динамические документы (документы, которые повторно наносить на каждый запрос) и динамические возможности (расширения сервера) теперь могут использовать базу данных в памяти и выполнять передовые классные вещи, такие как загрузка файлов, формы контактов, страницы поиска, любые

В этом смысле DocPad является веб-архитектуру следующего поколения, обладающую способностями генерации статического сайта, а также динамические возможности генерации сайтов. То, что отделяет DocPad от традиционных веб-архитектур, заключается в том, что традиционные веб-архитектуры рассматривают контент и шаблоны отдельных существ, где DocPad считает их одинаковыми и просто разделенными их расширением. Традиционные веб-архитектуры также являются динамическими по умолчанию, причем статическое создание сайтов выполняется с помощью кеширования, а не наоборот - статически по умолчанию.

Из-за этой нагрузки все в ситуации с памятью в памяти, мы страдаем от растущих болей с производительностью во время генерации и пост-поколения. Discussion here. Однако нет ничего, что не может быть исправлено с достаточным количеством времени и ресурсов. Независимо от этого, DocPad будет по-прежнему быстрее, чем ваша традиционная веб-архитектура из-за статической природы (более быстрые запросы), а также асинхронного характера (более быстрые поколения).

С точки зрения того, как вы бы обрабатывать загрузку файлов:

  • Если вы делаете статический сайт с DocPad, вы бы сервер API бэкэнд где-то еще, что вы могли бы сделать загрузку слишком и загрузить данных в DocPad в качестве стиля одностраничного приложения.

  • Если вы делаете динамический веб-сайт с DocPad, вы будете размещать DocPad на сервере, таком как Heroku, и расширять сервер для обработки загрузки файла в пункт назначения, такой как Amazon S3, Dropbox или в MongoDB или тому подобное. Затем вы можете открыть файл через templateData как ссылку или вставить файл в базу данных DocPad в памяти в виде файла. Какой из них вы выбрали, хотите ли вы просто ссылаться на загрузку или рассматривать ее как гражданина первого класса в юниверсе DocPad (он получает собственный URL и страницу).

Для динамических сайтов, я бы сказал, что я действительно использую статический сайт + подход к использованию одной страницы.Вы получаете преимущества, такие как отзывчивый дизайн, автономную поддержку, очень быстрый UX, который, не делая этого, вы немного сокращаете его с помощью динамического подхода к сайту, независимо от того, какую веб-архитектуру вы его построите.

1

Ну, я не могу довершение отличный объяснений Бенджамина, но если вы хотите TLDR объяснений:

DocPad используется (самый большой потребительной случае) порождают СТАТИЧЕСКИЕ веб-сайтов, а-ля страницы GitHub или старый сайтов 1990-х годов. Вы можете писать свои страницы в любом месте (Jade, eco, coffeescript и т. Д.), И он будет компилировать страницы и выводить файлы HTML. Подумайте об этом как о компиляции «один раз-сервер-навсегда».

С другой стороны, если вы хотите, чтобы на вашем сайте было создано Dynamic, вы хотите использовать Nodejs для вытягивания динамических данных с других сайтов или их генерации на лету.

Что касается вашей эфемерной файловой системы Heroku, (я точно не знаю, как это работает), вы можете использовать S3 Amazon для хранения. Отъезд this

Смежные вопросы