SCIR. Технология управления статическим сайтом
1 Введение
Используемый в заголовке термин «статический сайт» применен для обозначения сайта, который не обновляется в режиме реального времени и для реализации которого можно ограничиться только html документами.
В основе технологии SCIR лежат следующие идеи:
- Настройки представления сайта задаются глобальными SSI переменными в файле .htaccess. Значения переменных могут быть переназначены для подкаталогов или отдельных документов сайта.
- Элементы навигации и стилевого оформления страниц выносятся в отдельные файлы и подключаются в каждой html странице с помощью SSI директивы include. Разнесение навигации и стилевого оформления позволяет осуществлять независимое проектирование и поддержку внешнего вида и структуры сайта
- Каждый html документ содержит SSI переменную, задающую его заголовок, директиву include для включения начальной части страницы (заголовка. описания стилей и т.п.), непосредственно текст документа и директиву включения финальной части страницы (подвал и завершающие теги html). В документе, при необходимости, могут также переназначаться глобальные переменные (макет страницы и другие элементы представления)
- Для кэширования браузерами больших периодически изменяющихся документов используется директива сервера Apache xBitHack, позволяющая передавать клиентской программе время фактической модификации файла (а не текущего времени, как у других SSI документов).
2 Технология
2.1 Структура сайта
Макет сайта имеет следующую структуру
| .cpfiles .htsetup .idsetup | Служебные файлы (см. п. 3) | |||
| html/ | DOCUMENT_ROOT Web сервера | |||
| i/ | каталог для графики контента | |||
| .styles/ | каталог с файлами стилей и навигации | |||
| default/ | каталог описания стиля default | |||
| i/ | каталог с графикой для стиля default | |||
| part../ | каталоги разделов сайта |
В каждом каталоге также могут присутствовать файлы:
- DIR/.htaccess
- настройки текущего каталога
- DIR/.context.shtml
- шапка документов текущего каталога
2.2 Макеты страниц
Макет страницы по умолчанию задается в переменной $SCIR_NAVYSIDE файла .htaccess. В качестве примера использованы следующие макеты:
- LEFT (RIGHT)
- вертикальный блок навигации расположен с соответствующей стороны контента. Это статическое свойство сайта и может быть задано отдельным стилем.
- NONE
- блок навигации отсутствует и контент занимает всю ширину html страницы. Такой макет может использоваться для страниц с табличными данными, которые целесообразно разместить по всей ширине окна браузера. Задается переназначением переменной $SCIR_NAVYSIDE в коде таких страниц.
Стиль «для печати»
Общий для всех вариантов оформления сайта, содержит только информацию страницы и имеет ориентированную на печать цветовую палитру.
2.3 Использование SSI
Включение SSI директив производится по следующим правилам
- Перенос, чтобы в формируемый документ не добавлялась пустая строка
<!-#set var="SCIR_TITLE" value="Заголовок страницы"
-><!-#include virtual=".context.shtml"
->
- Перенос для улучшения читабельности кода
<a <!-#
if expr="\"$du\" != \"/index.html\""
->href='/'<!-#
else
->class='active'<!-#
endif
->>TITLE</a>
3 Используемые файлы
3.1 Подготовка дистрибутива к работе
Дистрибутив содержит командные файлы для использования администратором, назначение которых описано в файле INSTALL:
- .idsetup
- запускается однократно и в первую очередь. Заменяет @SCIR: на $ Id $ для облегчения использования файлов проекта в системе CVS
- .cpfiles
- запускается однократно и только для демо-сайта. Дублирует макеты страниц в подкаталоги
- httpd.conf
- пример файла конфигурации сервера Apache
3.2 Активация изменений
- .htsetup
- запускается при установке и каждый раз при добавлении файлов или изменении стиля сайта. Устанавливает корректные права доступа на файлы и создает линк на каталог текущего стиля
- html/.htaccess
- файл настроек SCIR
# Main .htaccess file
# Required Apache options
Options FollowSymLinks IncludesNOEXEC MultiViews
AddHandler server-parsed .shtml .css
# XBitHack SSI:
# user executable -> SSI
# group executable -> Cached SSI
XBitHack full
# Stage
AddHandler server-parsed .html .htm
# Global data
SetEnv SCIR_COPY_HOLDER "2002, YOUR_NAME"
SetEnv SCIR_COPY_MAIL "webmaster@somewhere.ru"
SetEnv SCIR_SITE_NOTE "[Site info]<br>[Site description]"
# Default language
SetEnv SCIR_LANG ''
# Colors: black or enything else
#SetEnv SKIN 'black'
SetEnv SCIR_SKIN 'noblack'
# Default nav style
SetEnv SCIR_NAVY '01'
# NavBar position (LEFT,RIGHT or NONE)
SetEnv SCIR_NAVYSIDE 'RIGHT'
# Default empty
SetEnv SCIR_PREFIX ''
SetEnv SCIR_TITLE ''
# Error document (xxx = 400, 403, 404, 500 etc)
ErrorDocument xxx /error.html
3.3 Навигация
Файлы описания навигации (меню со ссылками на страницы и разделы сайта) - общие для всех стилей и расположены в каталоге html/.styles. Имена файлов имеют формат
nav-$SCIR_NAVY.shtml$SCIR_LANG, где
- $SCIR_NAVY
- номер варианта навигации (например: 01, 02...)
- $SCIR_LANG
- обозначение языка (пусто для языка по умолчанию, .en для английской версии и т. п.)
<!-# include virtual="/.styles/nav-$SCIR_NAVY.shtml$SCIR_LANG" ->Примеры файлов описания навигации
- bar-01.shtml
- верхняя горизонтальная полоса меню
- nav-01.shtml
- боковое меню
- part2-01.shtml
- динамически подключаемое подменю
3.4 Стили
/html/style/ - символьная ссылка на каталог текущего стиля сайта (например, html/.styles/default). Каталог описания стиля может содержать каталог для графики (адрес изображений будет /style/i/..) и файлы
- top.shtml
- верхняя часть html документов
- btm.shtml
- нижняя часть html документов
- vars.shtml
- переменные, используемые в стиле (например, цвета)
- style.css
- файл описания CSS, использующий значения из vars.shtml
3.5 Контент
Оформление контента основано на файле уровня каталога .context.shtml и формате каждого html документа
Формат документов
<!-#set var="SCIR_TITLE" value="Заголовок страницы"
-><!-#include virtual=".context.shtml"
-><!- @SCIR: page2.html,v 1.4 2002/03/31 00:01:51 jean Exp
->
...
Содержимое страницы
...
<!-#include virtual="/style/btm.shtml" ->
Файл .context.shtml используется для уменьшения дублирования кода в html документах и имеет вид:
<!-#set var="SCIR_PREFIX" value="SITE | "
-><!-#include virtual="/style/top.shtml" ->
- SCIR_PREFIX
- общая для всех документов каталога часть заголовка страницы. Файл index.htm включает файл .context.shtml из каталога верхнего уровня.
4 Ссылки
- Web-сервер Apache http://www.apache.org
- Описание директив SSI http://httpd.apache.org/docs/howto/ssi.html
- Сайт проекта SCIR http://dev.jast.ru/scir
- Демо-сайт SCIR http://scir.tb.jast.ru
Версия
Id: skir_ru.lyx,v 1.6 2002/06/10 10:48:18