Статьи

7 причин использовать генератор статического сайта

Генераторы статических сайтов становятся все более популярными, и, если мой прогноз окажется верным , использование взорвется в течение 2016 года. Давайте выясним, что мы подразумеваем под термином «генератор статических сайтов»

генераторы статического сайта

Что такое статический сайт?

Вспомните первый созданный вами сайт. Большинство разработчиков начинают с создания серии страниц, содержащихся в отдельных файлах HTML. Каждый вызовет ресурсы, такие как изображения, CSS и, возможно, немного JavaScript. Возможно, вы запустили эти файлы прямо из файловой системы без веб-сервера. Жизнь была проста.

Трудности возникают, когда ваш сайт становится больше и сложнее. Рассмотрим навигацию: она может быть одинаковой в каждом файле, но добавление новой страницы требует обновлений для всех остальных. Даже ссылки на CSS и изображения могут становиться неловкими по мере развития структуры папок. Возможно, вы рассматривали варианты, такие как серверные включения или PHP, но более простой вариант может быть системой управления контентом (CMS)…

Что такое система управления контентом?

CMS обычно предоставляет административные панели управления, которые позволяют авторам писать контент, который хранится во внутренней базе данных. Когда посетитель запрашивает URL, CMS:

  1. определяет, какая страница требуется
  2. запрашивает соответствующий контент из базы данных
  3. загружает шаблон HTML (обычно из файловой системы)
  4. отображает содержимое в шаблоне и
  5. возвращает отформатированную HTML-страницу в браузер посетителя.

Это происходит почти мгновенно. Шаблон может включать в себя код для создания меню в соответствии с иерархией навигации. Жизнь прекрасна, и более чем каждый четвертый выбирает WordPress CMS с открытым исходным кодом на основе PHP / MySQL для управления своим сайтом.

К сожалению, CMS поднимает другой набор проблем:

  • Вы должны придерживаться способа работы CMS. Это может быть неудобно, чтобы добавить пользовательский текст или компоненты.
  • Сервер выполняет больше работы, и это может повлиять на производительность.
  • Есть дополнительные точки отказа. Обновление программного обеспечения или сбой базы данных могут привести к поломке вашего сайта.

Что такое генератор статических сайтов?

SSG — это компромисс между использованием статического сайта с ручной кодировкой и полной CMS, сохраняя при этом преимущества обоих. По сути, вы генерируете статический HTML-сайт, используя концепции, подобные CMS, такие как шаблоны. Содержимое может быть извлечено из базы данных, но, как правило, используются файлы Markdown.

Создание сайта может происходить на вашей машине разработки или промежуточном сервере. Полученные HTML-файлы затем развертываются на работающем веб-сервере. Пользователи никогда не узнают разницу.

Родственным понятием является CMS «без головы» или «без связи» . Они используют интерфейс, такой как WordPress, для управления контентом, но позволяют другим системам получать доступ к данным через API REST . Поэтому SSG может создать статический веб-сайт, используя содержимое страницы WordPress, извлеченное с внутреннего сервера. Полученные HTML-файлы могут быть загружены на веб-сервер — но установка WordPress никогда не должна быть доступна извне организации.

Популярные генераторы статических сайтов включают в себя Jekyll , Pelican , Hugo и Metalsmith — см. StaticGen для многих других. Давайте рассмотрим преимущества использования одного …

1. Гибкость

CMS обычно ограничивают ваши параметры, потому что они привязаны к базе данных с конкретными полями. Если вы хотите добавить виджет Twitter на некоторые страницы, вам обычно требуется плагин, шорткод или некоторые пользовательские функции.

На статическом сайте виджет можно просто вставить в файл напрямую или с помощью частичного фрагмента. Есть несколько ограничений, потому что вас не сковывают те, которые навязаны CMS.

2. Лучшая производительность

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

Статические сайты — это предварительно кэшированные страницы, срок действия которых никогда не истекает. Файлы также могут быть уменьшены до развертывания, чтобы гарантировать минимальную загрузку. Статический сайт всегда будет работать лучше, чем версия на основе CMS с использованием аналогичного шаблона.

3. Меньше серверных зависимостей

Типичная установка WordPress требует:

  • подходящая операционная система, такая как Ubuntu или CentOS
  • веб-сервер, такой как Apache или NGINX
  • PHP со связанными расширениями и конфигурациями веб-сервера
  • MySQL
  • приложение WordPress
  • любые необходимые плагины
  • код темы / шаблона.

Эти зависимости должны быть установлены и управляться. WordPress требует меньше усилий, чем некоторые другие приложения, но все же возможно, что одно обновление в любой части может вызвать хаос.

Статический сайт является легковесным и может быть размещен на любом веб-сервере, способном возвращать HTML-файлы. Больше ничего не нужно устанавливать, управлять или обновлять.

4. Улучшенная надежность

CMS сложна, со многими движущимися частями и точками отказа. Запустите сайт WordPress на любой промежуток времени, и вы почти наверняка столкнетесь с ужасной ошибкой «Не удалось установить соединение с базой данных» . Непредвиденные проблемы CMS могут возникнуть из-за резких скачков трафика, которые приводят к сбою базы данных или ограничивают активные соединения.

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

5. Превосходная безопасность

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

CMS открывает несколько векторов атаки. Наиболее очевидным является экран входа в систему: он настолько же надежен, как и самый слабый пароль пользователя. Имейте в виду, что любая страница, на которой выполняется серверный код, также предлагает потенциальные эксплойты — например, рассылка спам-писем через контактную форму. Может быть не очевидно, что кто-то получил доступ; худшие преступники хотят скрыться.

Статический сайт имеет мало или не имеет серверной функциональности. Вы не можете получить к нему доступ через скрипты или дыры в безопасности базы данных. Кто-то может получить доступ через SSH или FTP, но ему будет сложно нанести большой ущерб, кроме порчи страниц или загрузки файлов. Быстрая проверка git status Тогда просто поменять пароли, стереть весь сайт и восстановить его заново.

6. Вопросы контроля клиента

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

Статический сайт может использовать файлы Markdown. Это ограничивает возможности пользователя; они делают меньше ошибок и не могут негативно повлиять на страницы. Некоторые пропустят панели администрирования контента CMS, но вы можете:

  1. использовать существующие CMS и очищать данные перед генерацией, или
  2. обеспечить более простые рабочие процессы, такие как редактирование файлов Dropbox в StackEdit .

7. Контроль версий и тестирование

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

Статический сайт безопасен, если ваш контент определен в файлах Markdown и вы используете систему контроля версий, такую ​​как Git . Старые файлы сохраняются, и изменения можно быстро отменить. Тестирование становится проще, поскольку сайт можно создавать и просматривать в любом месте — даже на компьютере клиента.

Приложив немного больше усилий, вы можете внедрить системы развертывания, чтобы построить сайт на промежуточном сервере, а затем обновить действующий сервер после проверки и утверждения нового контента.

Так что все хорошо в мире статичных сайтов. Или это? Прочитайте мой пост на 7 причин НЕ использовать генератор статического сайта . А для практической демонстрации того, как создать сайт с помощью генератора статических сайтов, см. Мою статью Как создать статический сайт с помощью Metalsmith .