Как сгенерировать статический html на стороне сервера?

Я хотел бы использовать что-то вроде стандартного механизма шаблонов на стороне клиента и node.js для создания статических файлов html либо по запросу, либо просто во время выполнения. Как лучше всего подойти к этому?

Спасибо!


person fancy    schedule 31.12.2011    source источник
comment
Что вы имеете в виду под «статичным»? Вы хотите сохранить их на диск, а затем служить?   -  person Sergio Tulentsev    schedule 31.12.2011
comment
Да, я имею в виду заполненные данные, а затем сохраненные на диск для использования в виде простого html.   -  person fancy    schedule 31.12.2011
comment
Если данные динамические, то действительно ли они статичны?   -  person M.Babcock    schedule 31.12.2011
comment
@M.Babcock M.Babcock ДА, он создает статический HTML-файл на сервере во время выполнения.   -  person fancy    schedule 31.12.2011
comment
Итак, вы просто хотите написать скрипт узла для передачи данных на диск. Что подскажет движок узла с данными? Будете ли вы перебирать свои маршруты через управляющий скрипт? Якобы у вас должен быть скрипт n, который диктует все маршруты, которые должны быть сгенерированы, и выводит возвращенные данные в статический файл. Это был бы самый простой способ сделать это. Чтобы помочь мне помочь вам, поделитесь простым фрагментом вашей системы, которую вы хотите сделать статической, независимо от того, что у вас есть прямо сейчас ... наверняка вы создали хотя бы одну страницу, которую нужно сделать статической, правильно ?   -  person jcolebrand    schedule 31.12.2011
comment
@jcolebrand Это одностраничное приложение, прямо сейчас все шаблоны / html обслуживаются статически при первом подключении к серверу - я написал их вручную. На странице инициализации клиент запрашивает самые последние данные для приложения, сервер отправляет их обратно, и на клиенте происходит создание шаблона/сборка html. Дело в том, что новые данные меняются не так часто, поэтому, когда это происходит, я хотел бы просто отобразить шаблоны и создать статический html-файл со всеми данными, которые уже есть. Я бы сервер его так же, как я сейчас.   -  person fancy    schedule 31.12.2011
comment
звучит так, будто было бы проще просто установить кеширующий слой... но без кода будет очень сложно сказать   -  person jcolebrand    schedule 31.12.2011
comment
@jcolebrand Я так не думаю, кэширование не поможет, поскольку поведение при выборке данных будет таким же. Код также не поможет, потому что у меня пока нет ничего похожего на эту реализацию. Я не исправляю код или что-то в этом роде.   -  person fancy    schedule 31.12.2011
comment
@jcolebrand Я знаю, что люди делают это так, узел - это среда js. Механизмы шаблонов, такие как усы, работают в среде js и создают html. Node сохраняет сгенерированный html в виде файла. Сервер обслуживает этот html-файл (уже заполненный данными) при подключении. Мне просто нужно некоторое руководство о том, как лучше всего соединить части.   -  person fancy    schedule 31.12.2011
comment
@jcolebrand Если данные изменяются, сервер создает новый HTML-файл и заменяет старый.   -  person fancy    schedule 31.12.2011
comment
Мне нужно увидеть кое-что из того, что у вас есть, чтобы предложить вам предложение. Ты говоришь, как мне это сделать, а я не знаю, что ты делаешь. Дайте мне отправную точку. Вы сказали, что это одностраничное приложение, вам не нужно передавать параметры или что-то в этом роде? Главное, вы не запускаете сервер, вы просто используете узел для рендеринга страниц. Если уж на то пошло, вы можете заставить его записывать статический вывод напрямую в код вашего узла. Я не знаю, как вы хотите справиться с этим, есть около 5 вариантов, которые приходят на ум.   -  person jcolebrand    schedule 31.12.2011
comment
@jcolebrand спасибо за попытку помочь, не знаю, где вы заблудились, но, надеюсь, кто-то, кто делал это раньше, даст некоторые рекомендации. Это не имеет ничего общего с запуском сервера, это было просто примерное событие, которое я использовал как место для запуска процесса обновления. Процесс генерирует статический html, а не то, как его обслуживать. Я уже сказал, что обновление статического html-файла — это то, как я хочу это сделать.   -  person fancy    schedule 31.12.2011
comment
Откуда берутся данные (для преобразования в html)? Он есть в базе данных? Или в статических файлах в каком-то каталоге, но в другом формате (например, уценке)? Или что-то другое?   -  person Srijan Choudhary    schedule 31.12.2011
comment
данные в формате JSON, частичные/шаблоны в формате HTML   -  person fancy    schedule 31.12.2011
comment
Я понимаю вашу проблему, но вопрос слишком общий, чтобы ответить. Если вы ищете систему шаблонов, просто поищите ее в Google. Существует также полное решение, из которого вы можете черпать идеи или копировать и изменять его, которое называется petrify. .   -  person copy    schedule 31.12.2011
comment
Допустим, усы - это то, что я хочу. Пример оттуда, если действительно то, что я ищу в механизме шаблонов, не имеет большого значения.   -  person fancy    schedule 01.01.2012