Сайт по кирпичикам

Спецвыпуск хакер, номер #002, стр. 002-042-1

Андрей Князев (kniazev@xakep.ru)

Длинное вступление

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

И тут на помощь может придти довольно простой, но в то же время чрезвычайно мощный инструмент. Имя ему - Server Side Includes, сокращенно - SSI. Наиболее естественно и полно поддержка SSI традиционно реализована в web-сервере Apache, впрочем и во всех остальных Web-серверах (Netscape, MS IIS и проч.) она тоже наличествует.

Для чего может быть полезен SSI? Самый простой пример. Предположим, решил ты, знатный наш перец, удивить мир своим сайтом. Все бы хорошо, да вот только FrontPage издох, хомяк (HomeSite) умер с перепоя и остался ты один в этом мире, одинешенек. Одна надежда, что ручки шаловливые выведут. И они таки выведут. Но только в том случае, если сайт не большой или обновления на сайте - раз в пятилетку. Правда, это уже не сайт, а похоронная контора, но об этом позже. Сайт должен быть большим, интересным, живым и обновляемым.

Довольно распространенной (притом очень вежливой и разумной) считается манера размещать управляющее меню сайта на каждой странице. Естественно, что вид этого меню может быть сколько угодно прихотливым - главное, чтобы это меню присутствовало на всех страницах! Кроме того, очень бы хорошо еще и баннерную рекламку крутить, да еще кнопочки дружественных сайтов забабахать, да еще... короче - не перечесть.

А теперь представь себе кошмар, когда один раздел добавился, а другой умер, баннерную сеть надо срочно менять, а с другом ты разругался в дребадан и его поганую кнопку (чтоб он всю жизнь во FrontPage Express сайты ваял) ты хочешь выкинуть с сайта раз и навсегда. При этом на сайте, ну, хотя бы с 50 страниц есть. Вопрос - сколько файлов в каждом случае придется изменять?

Неправильный ответ - 50. Правильный ответ - 1. Но только в том случае, если используются SSI.

Наверное, пора перестать темнить и рассказать, что к чему. :)

Да будет свет!

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

Файлы, сделанные с применением SSI, обычно имеют расширение .shtml. "Лишняя" "S" в начале расширения говорит серверу, что в документе могут быть SSI инструкции. И сервер тогда их в состоянии грамотно обработать.

Таким образом получается, что к тому, кто страницы смотрит, уходит точно такой же объем кода, но при этом трудоемкость модификации и создания новых страниц для их автора заметно уменьшается.

Что ж, я нарисовал замечательную перспективу, но настырные голоса вопиют - "Show me the money", т.е. объясни, как же это все делается. Рассказываю...

Содержание  Вперед на стр. 002-042-2

загрузка...
Cпец Хакер #075Cпец Хакер #074Cпец Хакер #073Cпец Хакер #072Cпец Хакер #071Cпец Хакер #070Cпец Хакер #069Cпец Хакер #068Cпец Хакер #067Cпец Хакер #066Cпец Хакер #065Cпец Хакер #064Cпец Хакер #063Cпец Хакер #062Cпец Хакер #061Cпец Хакер #060Cпец Хакер #059Cпец Хакер #058Cпец Хакер #057Cпец Хакер #056Cпец Хакер #055Cпец Хакер #054Cпец Хакер #053Cпец Хакер #052Cпец Хакер #051Cпец Хакер #050Cпец Хакер #049Cпец Хакер #048Cпец Хакер #047Cпец Хакер #046Cпец Хакер #045Cпец Хакер #044Cпец Хакер #043Cпец Хакер #042Cпец Хакер #041Cпец Хакер #040Cпец Хакер #039Cпец Хакер #038Cпец Хакер #037Cпец Хакер #036Cпец Хакер #035Cпец Хакер #034Cпец Хакер #033Cпец Хакер #032Cпец Хакер #031Cпец Хакер #030Cпец Хакер #029Cпец Хакер #028Cпец Хакер #027Cпец Хакер #026Cпец Хакер #025Cпец Хакер #024Cпец Хакер #023Cпец Хакер #022Cпец Хакер #021Cпец Хакер #020Cпец Хакер #019Cпец Хакер #018Cпец Хакер #017Cпец Хакер #016Cпец Хакер #015Cпец Хакер #014Cпец Хакер #013Cпец Хакер #012Cпец Хакер #011Cпец Хакер #010Cпец Хакер #009Cпец Хакер #008Cпец Хакер #007Cпец Хакер #006Cпец Хакер #005Cпец Хакер #004Cпец Хакер #003Cпец Хакер #002Cпец Хакер #001