7 причин не использовать генераторы статических сайтов
В моей предыдущей статье мы обсуждали, какие преимущества может получить ваш сайт от использования генератора статических сайтов:
- Статический сайт — это набор станиц, содержащихся в HTML-файлах. Вы можете написать их вручную в текстовом редакторе, но управление ресурсами и повторяющимися элементами, такими как навигация, может стать проблематичным.
- Система управления контентом хранит содержимое страницы в базе данных и предоставляет средства для редактирования и применения тем. Управление становится проще за счёт гибкости, производительности, требований к серверу, безопасности и резервного копирования.
- Генератор статических сайтов — это компромисс между использованием статического сайта с ручным кодом и полноценной CMS. Вы создаёте полный сайт один раз, используя необработанные данные (например, файлы Markdown) и шаблоны. Полученный набор файлов переносится на ваш живой сервер.
- Термин
JAMStack
(JavaScript, API и Разметка/Markup)используется в отношении статических файлов. Это относится к развитию фреймворков, бессерверных функций и связанных с ними инструментов, но позволяет добавлять сложную интерактивность.
Популярные генераторы статических сайтов включают Jekyll, Eleventy, Gatsby, Hugo и Metalsmith. SSG доступны для большинства языков программирования (более подробно на StaticGen).
Похоже, что SSG предлагает преимущества как CMS, так и статических миров, но они могут не подходить для каждого проекта...
1. Вы сами по себе
Вы не продвинетесь далеко, используя генератор статических сайтов, без опыта разработки. Этот процесс сложнее, чем при использовании CMS, ресурсов меньше, и вам может быть сложно найти готовые плагины и шаблоны.
Сравните это с WordPress. Пользователю, не являющемуся техническим специалистом, может потребоваться помощь в установке, но после её завершения он сможет редактировать сайт и установить одну из многих тысяч доступных тем и плагинов. У них может быть не самый лучший сайт, сделанный на заказ, но они работают с минимальным вмешательством.
2. Паралич выбора
Существует множество генераторов статических сайтов, но даже самые популярные инструменты используются небольшой частью веб-сообщества. Вам понадобится время, чтобы изучить, исследовать и оценить варианты. Одним из первых SSG был Jekyll на основе Ruby, но, хотя вам необязательно иметь опыт работы с Ruby, он поможет, если вы использовали этот язык раньше.
Существует много CMS, но есть очевидный выбор: WordPress. Он используется на более 40% сайтов в Интернете, поэтому помощи в избытке. Опять, существенную помощь окажет знание PHP. Даже не разработчик может создать веб-сайт, используя готовые темы и плагины.
3. Время начальной настройки
Создание вашего первого статического сайта займёт время. Нужно будет изучить процесс сборки, и необходимо разработать большую часть кода шаблона. Также могут потребоваться сценарии развёртывания на сервере.
Разработка пользовательской темы CMS также может быть сложной, но доступны готовые шаблоны, и легче найти помощь. Дальнейшая разработка может не потребоваться после первоначальной установки.
4. Отсутствие административного интерфейса
Клиенты могут проявлять осторожность при столкновении со сложным интерфейсом CMS. Многих может напугать просьба создать и отредактировать набор Markdown файлов. Возможно, вы можете упростить процесс:
- используя существующую CMS в качестве источника данных для SSG, или
- предоставляя более простые рабочие процессы, такие как редактирование файлов на основе Git в StackEdit или Hackmd.io.
Но это ещё больше повлияет на первоначальное время разработки.
5. Согласованность веб-сайта
Статические сайты гибки: всё, что содержится в исходном контенте, может быть отображено на веб-странице. Пользователи могут включать сценарии, виджеты или многочисленные нежелательные элементы.
CMS можно настроить так, чтобы ограничивать пользователя. Контент обычно привязан к базе данных с определёнными полями, поэтому панели администрирования предлагают пользователю ввести заголовок, основной контент, выдержки, избранные изображения и т.д. Даже если пользователь введёт что-то в неожиданное поле, это не появится на веб-сайте, если не реализовано в шаблоне темы.
6. Управление большими сайтами
Рассмотрим веб-сайт с тысячами страниц, ежедневными публикациями контента, последними новостями в режиме реального времени и десятками авторов в разных местах. Контентом можно управлять с помощью генератора статических сайтов, но:
- Редактирование и публикация контента могут быть более неудобными. Редакторам может потребоваться доступ к Git репозиторию или общим папкам, а не к простому веб-интерфейсу или интерфейсы приложения.
- Обновления в режиме реального времени задерживаются, поскольку сайт необходимо пересобрать, протестировать и развернуть.
- Время сборки может быстро увеличиться, а развёртывание стать громоздким.
Генераторы статических сайтов, возможно, лучше всего подходят для сайтов не более нескольких сотен страниц с парой новых сообщений каждую неделю. Потребуются автоматизированные процессы сборки и развёртывания, и вы можете достичь точки, когда CMS станет более практичным вариантом.
7. Серверная функциональность
Статические сайты идеальны подходят для страниц с контентом, но ситуация усложняется, когда потребуется вход пользователей в систему, заполнение форм, средства поиска, дискуссионные форумы или другие формы взаимодействия с сервером и базой данных. Варианты включают:
- Добавления стороннего клиентского компонента, такого как поиск Algolia или комментарии Disqus.
- Создание собственных серверных (или бессерверных) API, которые могут использоваться клиентским javaScript для добавления необходимых функций.
- Создание страниц, содержащих
<?php ... ?>
или аналогичные клоки кода на стороне сервера. - Переключение на такую платформу, как Next.js, которая по возможности отображает статический контент, но также позволяет выполнять обработку на стороне сервера.
Однако время разработки, сложность сборки, последствия для безопасности, усилия по тестированию и расходы возрастут. Сравните это с установкой подходящего плагина WordPress, который может реализовать клиентские или серверные функции за несколько минут.
Подходит ли вам статический сайт?
Прежде чем принимать какое-либо решение, проверьте:
- ваши требования к проекту, размер, сложность, частота обновления и т.д.
- ваши пользователи, их местоположение, ожидания и т.д.
- навыки разработки вашей команды, и
- любые факторы размещения и/или развёртывания.
Подавляющее большинство веб-сайтов редко превышает несколько десятков страниц, получают нечастые обновления и зависят от разработчика, для внесения этих изменений. CMS часто бывает излишним, поэтому генератор статических сайтов может упростить разработку и снизить затраты. Убедить вашего клиента отказаться от своих панелей управления контентом может быть сложной задачей!