Как правило, сайт представляет из себя набор практически одинаковых страниц в плане их кода, и содержит много "блоков" которые дублируются на всех страницах сайта. На страницах меняется лишь контент, а такие "блоки" кода как "шапка" сайта, "подвал" сайта, блок с меню.. остаются неизменными на всех страницах.
Взгляните на шаблон сайта, цветами в нем выделены куски кода которые будут повторятся на всех страницах сайта:
В связи с этим веб мастерам приходится постоянно проделывать одни и те же операции..
Ну например: есть у Вас штук десять страниц сайта и Вы написали ещё одну - одиннадцатую и теперь чтобы связать страницу ссылками с другими страницами сайта Вам нужно открывать каждую страницу, искать в ней блок с меню, дописывать в этом блоке ссылку на новую страницу.. хорошо если страниц на сайте всего десять! А если их штук 100?? Убить полдня на перелинковку?
Выход есть!
А что если одинаковые кусочки кода повторяющиеся на каждой странице вынести в отдельные файлы, а потом загружать их в нужные места на страницы? Ну вот допустим вытащить ячейку с "меню" из примера выше в отдельный файл.. вот этот кусок кода:
А на страницах в нужном месте, где нужен этот код оставить инструкцию, что мол, сюда нужно вставить данный код! Теперь для того чтобы изменить меню на всех страницах сайта потребуется внести коррективу всего в один файлик.
Для этих целей существует технология SSI (Server Side Includes) - Включения на стороне сервера.
SSI - это директивы, вставляемые непосредственно в HTML и служащие для передачи указаний Web-серверу. Встречая такие директивы, Web-сервер интерпретирует их и выполняет соответствующие действия (вставка HTML-фрагмента из другого файла, динамическое формирование страниц и так далее)
На самом деле эта наука заслуживает отдельного учебника, но мы здесь не будем вдаваться в подробности, а решим с помощью данной технологии нашу конкретную задачу.
Теперь по порядку.. будьте внимательны!!
В результате всех этих манёвров у нас должно получиться четыре файла:
Вот собственно и всё.. теперь можно загрузить всё это дело на сервер, открыть страницу index.shtml и насладится первым результатом! Только имейте ввиду, что сервер должен поддерживать эту технологию.. думаю на любом платном хостинге есть поддержка SSI, так что с этим проблем не будет..
Теперь чтобы изменить какой либо блок с повторяющимся кодом одновременно на всех страницах сайта достаточно внести изменения в один единственный файлик, включённый в данные страницы с помощью директивы:
<!--#include virtual="*.txt"-->
Я всё делал по инструкции, но на моём компьютере ничего не работает!!
- Если Вы для создания сайтов на Вашем компьютере не используете какой либо виртуальный сервер, то ничего работать не будет до тех пор пока Вы не отправите всё содержимое на сервер Вашего хостера .. На то и называется эта технология - включения на стороне сервера, а не включения на стороне пользователя.
Какой <!DOCTYPE> следует указывать при использовании технологии SSI с такими вот файлами txt?
- В самих txt файлах <!DOCTYPE> вообще не нужен!!, а в файле *.shtml используйте тот который стоял у Вас раньше.. Эта технология всего на всего позволяет "раскроить" страницу, а потом "сшить" её из отдельно взятых кусочков кода..
Как обстоит дело и индексацией страниц? будут ли видны поисковому роботу такие "склеенные" страницы?
- Так как "склеивание" документа происходит на стороне сервера поисковый робот, равно как и человек, не заметит подмены.. Сервер по запросу робота выдаст уже полный "склеенный" документ, так что проблем с его индексацией быть не может!
Я вынес "подвал" сайта в отдельный txt файл, там у меня расположены счетчики посещений, будут ли они теперь корректно работать?
- Да, счетчики будут работать корректно.. ещё раз говорю, что файлы txt "склеиваются" на стороне сервера и сервер выдаёт по запросу всю страницу целиком.