Сім причин використовувати генератори статичних сайтів

Що таке статичний сайт?

Проблеми виникають, коли сайт росте і стає складніше. Давайте візьмемо меню навігації і розглянемо на його прикладі: воно може бути в кожному файлі, але при створенні нової сторінки необхідно буде оновлювати всі файли, що містять меню. Коли папок на сайті стає більше, навіть посилання на зображення і CSS можуть раптом стати «битими». Можливо, ви розглядали такі варіанти, як server-side з або без PHP, але ще більш легким способом може здатися CMS (content management system).

Що таке CMS?

  • визначає, як потрібно сторінка;
  • запитує відповідний вміст з бази даних;
  • завантажує HTML шаблон (як правило, з файлової системи);
  • відтворює вміст згідно шаблону;
  • повертає отформатированную HTML сторінку в браузер відвідувача.

Все це відбувається практично миттєво. Шаблони можуть включати в себе код для створення меню, різні блоки, підключення стилів і багато іншого. І ось життя знову прекрасна, і, до речі, більше 25% людей вибирають для управління своїм сайтом WordPress. побудований на зв'язці PHP + MySQL.

На жаль, при використанні CMS отримуємо набір інших проблем:

  • вам необхідно дотримуватися CMS при роботі з сайтом, а це може бути незручним при додаванні тексту або компонентів;
  • сервера необхідно генерувати купу сторінок, і це помітно впливає на продуктивність;
  • оновлення CMS і збій бази даних може взагалі «звалити» сайт.

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

SSG (Static Site Generator) - це вдалий компроміс між використанням сайту, написаного вручну, і CMS. При цьому ви зберігаєте переваги обох варіантів. По суті ви створюєте сайт, що складається тільки з HTML файлів, але за допомогою CMS-подібної концепції, такий як шаблони. Контент в подібному випадку можна витягати з бази даних, але частіше використовуються Markdown файли.

Сайт можна генерувати на вашій машині або проміжному сервері, а потім дислокувати отримані HTML файли на live-сервері. Користувач не відчує різницю. Ця концепція використовує такий інтерфейс як WordPress для адміністрування контенту, але дає іншим системам можливість доступу до даних за допомогою REST API.

Таким чином, SSG може побудувати статичний сайт, використовуючи вміст сторінок в WordPress, витягнуте з внутрішнього сервера. В результаті HTML файли можуть бути завантажені на сервер, але установка WordPress не повинна бути доступна ззовні.

Одні з найпопулярніших генераторів статичних сайтів - це Jekyll, Pelican, Hugo and Metalsmith. В інтернеті ви можете знайти ще більше різноманітності.

Давайте виділимо явні плюси використання SSG.

CMS, як правило, обмежує ваші можливості, тому що все прив'язане до конкретних полях в базі даних. Якщо ви захочете додати віджет, наприклад, Twitter на якісь сторінки, потрібен буде плагін, шорткод або щось ще.

У статичному сайті можна вставити віджет безпосередньо в файл у вигляді фрагмента коду. Є зовсім невеликі обмеження, тому що ви звільнені від тих, що накладає CMS.

2. Висока продуктивність

Багато CMS додатки пропонують вбудовані (або у вигляді плагінів) системи кешування, щоб забезпечити генерування сторінок і використання їх повторно, якщо необхідно. Це ефективно, але зайві дії все одно мають місце бути: наприклад, при перевірці файлів кеша і повторної генерації сторінок.

У той же час статичні сайти попередньо кешують сторінки, і термін життя такого кеша вічний. Файли також можуть бути стиснуті для ще меншого навантаження. Ось і виходить, що при використанні одного і того ж шаблону статичний сайт завжди буде працювати краще, ніж сайт побудований на CMS.

3. Менше серверної залежності

Що потрібно для установки WordPress:

  • сумісна операційна система типу Ubuntu або CentOS
  • веб-сервер - наприклад, Apache або NGINX
  • PHP з необхідними розширеннями
  • MySQL
  • сам WordPress
  • шаблон (тема)

Все це повинно бути встановлено і налаштовано. Насправді WordPress - не вибаглива штука, адже існують додатки, у яких залежностей в рази більше, але навіть цього списку досить, щоб при оновленні всього однієї з перерахованих частин списку, зламалося все.

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

CMS - це цілий комплекс, з величезною кількістю переміщуваних частин і «точок відмови». Запускаючи сайт на Вордпресс, не залежно від того, колько часу він вже пропрацював, ви точно хоча б раз зіткнетеся з цією страшною фразою «Failed to establish a database connection». Досвід підказує, що непередбачені проблеми в CMS можуть виникнути в результаті раптового стрибка трафіку, через що може впасти база даних або розірватися активні сполуки.

В цей же час, обслуговування статичного сайту менш напружений, так як сервер просто повинен віддавати HTML файли. Звичайно, в цій ситуації теж можна покласти сервер, але це буде складніше: потрібно в рази більше одночасних запитів.

5. Високий рівень безпеки

CMS сам дає поле для таких атак. Найочевиднішим тонким місцем є форма входу: вона безпечна настільки, наскільки безпечний найслабший пароль одного з користувачів. Майте на увазі, що код будь-якої сторінки виконується на сервері, що вже передбачає потенційні дірки - наприклад, відправку спаму через контактну форму. Спочатку це може бути не очевидним, адже кращі злочинці довго залишаються непоміченими.

У статичного сайту дуже мало або взагалі немає функціональності на стороні сервера. Ви не можете отримати доступ за допомогою скриптів або за рахунок дірок в безпеці бази даних. У когось. можливо, і вдасться отримати доступ за допомогою SSH або FTP, але їм потрібно буде дуже постаратися, щоб принести шкоду більше, ніж псування сторінок або завантаження файлів. Швидка команда «git status» або, на крайній випадок, проста перевірка папки зможе швидко виявити сліди несанкціонованого доступу. Вам просто буде необхідно змінити паролі, удалітьвесь сайт повністю і відновити все заново.

6. Управління контентом

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

У разі статичного сайту найчастіше використовуються Markdown файли. Їх використання обмежує можливості користувачів, в результаті вони роблять менше помилок, і сторінка відображається в первозданному вигляді. А для зручного редагування файлів можна користуватися зручним сервісом StackEdit.

7. Контроль версій і тестування

Витративши трохи більше зусиль, ви можете зробити систему для розгортання сайту на проміжному сервері, а після додавання і апрува нового вмісту, можна буде автоматично переносити на головний сервер.

Переклад - Вартівня

Мене вражає підміна понять яка останнім часом відбувається в зв'язку з цими конструкторами. По суті, будь-яка CMS це РІВНЕ ТОЙ ЖЕ ГЕНЕРАТОР СТАТИЧНИХ сайтів. Різниця тільки в тому, що використовуючи CMS можна зробити набагато більше, і, як наслідок, для цього потрібен кваліфікований фахівець.

Тому, абсолютно невірно говорити про переваги чи недоліки однієї системи над іншою.

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

Demimurych, ти не зрозумів суті: CMS - це шматок гавно, який віддає контент, а SSG - це класика, яка формує те, для чого розроблявся WWW.

Схожі статті