Що таке SSI, або Зроби свій сайт простіше! (Частина 1)
Інтернет-технології в наші дні стають все доступнішими. Відкрити свій сайт в Інтернеті може будь-який, вибір можливостей - на будь-який смак. Можна копітко виписувати теги в «Блокноті», можна використовувати спеціальні візуальні редактори, можна просто накидати сторінку в Microsoft Word і зберегти у форматі HTML. Словом, «твори, вигадуй, пробуй!». Зовсім не обов'язково бути професійним програмістом або дизайнером, все частіше на арену Інтернету виходять аматори.
Майже кожен непрофесійний сайт починає своє існування у вигляді декількох HTML-документів, пов'язаних між собою перехресними посиланнями. Багато хто так і йдуть в такому стані в інформаційну вічність. Але деякі аматорські сайти все ж стає популярними, обростають жирком інформаційного наповнення, нагулюють обсяг. Іноді розростаються до десятків і навіть сотень сторінок. Але по суті своїй залишаються набором раз і назавжди сформованих документів.
Підтримувати і оновлювати такий сайт - суще мука для його власника. Сторінка, як правило, складається з декількох блоків, причому частина з них незмінна для всіх сторінок сайту. Це заголовок, навігаційне меню, рекламний блок, підвал сторінки. Якщо щось захочеться змінити в одному з таких постійних блоків, це доведеться вручну зробити на кожній сторінці сайту. Задоволення вельми сумнівне. Часто цікаві ідеї залишаються нереалізованими саме через великого обсягу правки десятків окремих сторінок. SSI дозволяє значно полегшити цю роботу. Крім того, технологія SSI дозволяє робити ще дещо, принципово не здійсненне засобами HTML. Використовувати SSI просто, хоча знання мови HTML дуже допоможе. Якщо ви не злякалися, то вперед!
Перш за все, розшифруємо абревіатуру SSI - Server Side Includes. По-російськи, «включення на стороні сервера». Все зрозуміло? Тоді на цьому закінчимо ... Хоча краще буде все-таки пояснити. SSI - це директиви, що вставляються в HTML-код і керуючі web-сервером. Зустрічаючи у файлі такі SSI-вставки, web-сервер виконує певні дії. Наприклад, додавання HTML-коду з іншого файлу, формування сторінок «на льоту» залежно від типу браузера і багато іншого.
Для того щоб сервер знав, що сторінка містить SSI-вставки, вона повинна мати спеціальне розширення: * .shtml або * .shtm, хоча це визначається конфігурацією сервера. Найчастіше застосовується саме * .shtml. Про те, що сервер підтримує SSI, зазвичай повідомляється в описі хостингу або тарифу. Але перевірити не завадить. Для цього створимо два файли - first.shtml і second.html. У файл first.shtml скопіюємо шість рядків:
# 60! DOCTYPE HTML PUBLIC "- // W3C // DTD HTML 4.01 Transitional // EN"# 62;
# 60-html # 62;
# 60-body # 62;
# 60 -! - # Include file =" second.html"-; # 62;
# 60; # 47-body # 62;
# 60; # 47-html # 62;
У файл second.html запишемо всього один рядок:
# 60-b # 62-Працює! # 60-b # 62;
Тепер завантажимо ці сторінки на сервер і напишемо в адресному рядку браузера «www.ваш_сайт / first.shtml». Якщо сервер підтримує SSI, то після відкриття файлу ми побачимо напис «Працює!». Якщо замість цього написано [an error occurred while processing this directive], теж вітаю! SSI працює, але обробити SSI-вставку неможливо. Наприклад, ви могли вставити в код зайві пробіли або по-різному назвати файли. Швидше за все, на сервері трудиться Unix-система, а для неї second.html і Second.html - дві великі різниці.
Якщо не відображається взагалі нічого, а підтримка SSI заявлена, то простіше всього звернутися в службу технічної підтримки. Можливо, замість розширення * .shtml використовується щось інше або в налаштуваннях сайту необхідно явно дозволити виконання SSI. У будь-якому випадку фахівці хостингу постараються вам допомогти.
Отже, чим же SSI може допомогти при супроводі сайту? Основна смакота полягає в наступному. Будь фрагмент, який повторюється на декількох сторінках, ми можемо зберігати на сервері в єдиному екземплярі! Для цього помістимо цей фрагмент в окремий файл, наприклад fragment.html. У цьому файлі не потрібні # 60-html # 62-, # 60-body # 62- та інші атрибути «повноцінного» html-документа. Там повинен бути тільки сам фрагмент коду, який потім буде вставлений на своє місце.
Тепер в будь-якому місці будь-якої сторінки сайту, де цей фрагмент знадобиться, ми пишемо SSI-вставку:
# 60 -! - # Include file ="fragment.html" -; # 62;
Файл повинен знаходитися в тому ж каталозі, що й основний файл. Якщо ви хочете винести всі файли-вставки в окремий каталог, то доведеться використовувати іншу команду, в якій вказується повний шлях до файлу фрагмента щодо поточного каталогу:
# 60 -! - # Include virtual ="/catalog/fragment.html" -; # 62;
Таким чином, в основному файлі можна залишити тільки «скелет» сторінки, наприклад каркасну таблицю і основний текст, а всі постійні блоки додавати через SSI-вставки. Повна сторінка буде формуватися web-сервером «на льоту», як би з окремих цеглинок. Тим не менш, користувачеві на комп'ютер прийде повна сторінка, без найменших ознак використання SSI. Якщо ви зміните щось у фрагменті, це автоматично відобразиться на всіх сторінках, де він використовується.
Ви все ще роздумуєте? Тоді спеціально для вас під другої частини статті ми розглянемо такі смаколики, що сумнівів у використанні SSI вже не залишиться.