Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Файл head.html





<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html lang="ru">

<head>

<meta http-equiv=Content-Type content="text/html; charset=windows-1251">

<title><!--#echo var="titl"--></title>

<meta name="Description" content="<!--#echo var="descript"-->">

<meta name="Keywords" content="<!--#echo var="keyw"-->">

<meta name="Author" content="Красносельский К. К.">

<link rel="stylesheet" href="/include/style.css" type="text/css">

</head>

<body>

 

<Table border=0 CELLPADDING="0" CELLSPACING="0" class=main>

<col width=238px><col>

<TBODY>

<tr><td colspan=2 class=head><div class=head>

 

<h1 class=slogan>Полный спектр оборудования<br><span>для контроля помещений</span></h1>

<table border=0 CELLPADDING="0" CELLSPACING="0" class=menu>

<col width=20px><col>

<TBODY>

<tr><td><!--#if expr="$SCRIPT_NAME=/^\/index.html/" -->&#8226;<!--#endif --><td><a href="http://<!--#echo var="SERVER_NAME"-->/">главная</a></tr>

<tr><td><!--#if expr="$SCRIPT_NAME=/^\/product.html/" -->&#8226;<!--#endif --><td><a href="/product.html">продукты</a></tr>

<tr><td><!--#if expr="$SCRIPT_NAME=/^\/uslugi.html/" -->&#8226;<!--#endif --><td><a href="/uslugi.html">услуги</a></tr>

<tr><td><!--#if expr="$SCRIPT_NAME=/^\/partners.html/" -->&#8226;<!--#endif --><td><a href="/partners.html">партнерам</a></tr>

<tr><td><!--#if expr="$SCRIPT_NAME=/^\/contacts.html/" -->&#8226;<!--#endif --><td><a href="/contacts.html">контакты</a></tr>

</TBODY>

</table>

</div></tr>

<tr><td class=top-left><td class=td-topcontent><img src="/include/top-ugol.jpg" alt=""></tr>

<tr><td class=left>

 

<div class=left>

<div class=left-top></div>

<div class=block>

<h2>До 1 февраля</h2>

<h3>GSM сигнализация STD&#8722;001</h3>

<p style="text-align:center"><img src="/include/signal_pict_wolf_camera.gif" alt="">

<P>По суперцене: 5000 руб.

<P>* Камера – доп. опция

 

</div>

<div class=left-bottom></div>

</div>

 

<td class=td-content>

Что непривычного в этом файле для тех, кто не привык использовать SSI?

Первое, что, наверняка бросится в глаза, это странные комментарии типа <!--#echo var="titl"-->. Те, кто читал SSI – Server Side Includesзнает, что это не комментарии, а SSI-инструкции. Данная инструкция говорит серверу вывести в эту часть страницы содержимое переменной titl, которая, очевидно, должна быть объявлена где-то раньше.

Второе, что может показаться непривычным – это то, что ссылки, значения href, url и src часто начинаются с косой черты. Например: <link rel="stylesheet" href="/include/style.css" type="text/css">

Косая черта указывает на корень сайта и, в данном случае, href указывает на файл style.css, находящийся в папке include, находящейся в корне сайта (например, http://имя_сайта/include/style.css). Для тех, кто привык делать страницы целиком в визуальных редакторах привычней писать относительные пути, вроде../include или include, но, это возможно, когда страница, в которой эти пути указываются, имеет определенный адрес. Если же данная шапка будет включаться в различные файлы, находящиеся в различных каталогах, то, куда, например, укажет относительный путь../include/style.css для следующих файлов:

http://имя_сайта/dir1/page1.html

http://имя_сайта/dir1/poddir/page1.html

http://имя_сайта/page1.html

В первом случае, файл style.css, как и положено, будет искаться в каталоге http://имя_сайта/include. Во втором он будет искаться в НЕсуществующем каталоге http://имя_сайта/dir1/include, а в третьем, вообще, в каталоге, который, если и существует, недоступен из интернета.


Указание абсолютного пути от корня сайта позволяет избежать казусов, возникающих с относительными путями. Можно было бы указывать путь как http://имя_сайта/include/style.css, но в этом случае, при смене имени домена потребовалось бы менять имя_сайта. Отказ от явного указания имени сайта позволяет этого избежать и сделать код более гибким. Впрочем, иногда имя сайта стоит указать. Например, для перехода на главную (если страница сохранена локально, лучше, чтобы там сохранился такой адрес главной страницы сайта: «http://имя_сайта/», а не такой «/»). Для этого, можно использовать различные переменные сервера. Например, с использованием переменной SERVER_NAME, можно указать адрес сайта как http://<!--#echo var="SERVER_NAME"-->/. Так можно указать полный путь в интернете ко всем страницам, но я указываю только на главную, оставляя в других местах указание пути от корня сайта, чтобы сократить код.

Далее по коду обнаруживаются несколько странные конструкции <!--#if expr="$SCRIPT_NAME=/^\/index.html/" -->&#8226;<!--#endif -->. Это условный оператор, описанный в SSI – Server Side Includes. Посмотрим на него внимательно. Он анализирует значение переменной SCRIPT_NAME, содержащей полный путь к странице от корня сайта. В данном случае, меня интересовал именно файл index.html, находящийся в корне сайта (в других папках сайта тоже может находиться файл с таким именем). Именно поэтому, для анализа взята не переменная DOCUMENT_NAME, содержащая название файла, а SCRIPT_NAME, содержащая еще и путь. Но путь к файлу начинается с символа «/», имеющего для SSI специальное значение. Поэтому, чтобы отключить это значение, приходится применить регулярное выражение (взяв имя и путь файла в символы «/»). В этом выражении, знаком «^» показать что, значение должно начинаться именно так, как написано здесь (то есть, не должно содержать никаких символов до этого текста, а не просто содержать этот текст где-то, внутри); затем, применив символ «\», показать, что следующий за ним символ должен пониматься как простой символ, а не конец выражения (как он обычно понимается); потом уже написать /index.html и закончить выражение символом «/». Таким образом, серверу будет указано, что нужно ориентироваться не на какой-нибудь index.html, а именно на index.html в корне сайта (если нужно указать, что сравнивать следует именно с «index.html», а не чем-то другим, вроде «index.htmlчто-то_еще», перед закрытием регулярного выражения нужно поставить знак доллара – я этого не делаю, так как в моей практике «index.htmlчто-то_еще» пока не бывало).

С конструкцией разобрались. Зачем же она была нужна? Зачем мне нужно было усложнять код, вписав в него <!--#if expr="$SCRIPT_NAME=/^\/index.html/" -->&#8226;<!--#endif -->?

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

И так, шапка готова. Делаем хвост.







Date: 2015-09-02; view: 299; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию