Web-технологии

Кейно Павел Петрович

pavel@mati.ru

Лекция 8

SSI (Server-Side Includes) — включения на стороне сервера

SSI

SSI (Server Side Includes — включения на стороне сервера) — простейший язык программирования для динамической «сборки» веб-страниц на сервере из отдельных составных частей и выдачи клиенту полученного HTML-документа.

Позволяет подключать внешние HTML-файлы в документ.

Для использования инструкций файл должен оканчиваться расширением .shtml, .stm или .shtm

Пример: содержимое файла index.shtml

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>SSI</title>
  </head>
<body>
  <!--#include file="content.html"-->
</body>
</html>

Пример: содержимое файла content.html

<h1>Работает</h1>

Пример: результат работы

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>SSI</title>
  </head>
<body>
  <h1>Работает</h1>
</body>
</html>

Общая структура Web-сервера

Архитектура Web

Возможные ошибки

Отображается надпись [an error occurred while processing this directive]
Это означает, что SSI работает, но в коде содержится ошибка.
Ничего не отображается
Следует посмотреть исходный код документа, если в нем видна строка
<!--#include file="content.html"-->, значит веб-сервер не поддерживает SSI или оно не распространяется на расширение .shtml. Также вполне возможно, что файл запускается не под сервером, посмотрите, есть ли в адресной строке браузера http://.

Директивы SSI

SSI поддерживает несколько команд называемых директивы, предназначенных для разных целей и расширяющих возможности по модификации веб-страниц.

Все директивы записываются в следующем виде:
<!--#директива параметр="значение"-->

Директива include

Директива include вставляет содержимое другого файла в текущий документ. Файл обязательно должен быть доступен, иначе он не будет показан. У директивы include имеется два параметра: file и virtual.

Параметр file
Указывает путь к файлу относительно текущего документа. Можно использовать как текстовые файлы, так и HTML-документы, а также включать другие SSI-файлы (обычно с расширением .shtml). Синтаксис использования следующий: <!--#include file="URL"-->.
Параметр virtual
Задает виртуальный путь к документу на сервере. Синтаксис следующий:
<!--#include virtual="URL"-->. Параметр virtual задаёт путь от корня сайта, в то время как параметр file задаёт путь относительно текущего документа.

Пример на практике

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>SSI</title>
    <!--#include virtual="/assets/link.txt"-->
  </head>
<body>
  <!--#include virtual="/assets/header.shtml"-->
  <article>Содержание текущего документа</article>
  <!--#include virtual="/assets/aside.shtml"-->
  <!--#include virtual="/assets/footer.txt"-->
</body>
</html>

Кроме того…

Язык SSI имеет:

Лабораторная работа №9

Разработка: Викулин Максим