Проблема с SSI вставкой

Guest2011

Новичок
Проблема с SSI вставкой

Пытаюсь подключить меню, которое вынес в отдельный файл к остальным страницам.
код меню находится в файле content.html, который располагается в корне сайта.


Главная страница index.html находится тоже в корне сайта.
Остальные страницы онтосительно корня по адресу : pages\tourism
На главную стканицу вдключил меню так:
Код:
<!--#include file="content.html"-->
а на остальные пытаюсь так:
Код:
<!--#include file="../../content.html"-->
но меню подключилось почему-то только на главной странице
на остальных выдаёт ошибку
"an error occurred while processing this directive".

Пути указал насколько понимаю правильно. Но почему-то меню подключает только к главной странице. Подскажите, пожалуйста, как правильно подключить меню ко всем страницам.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Guest2011
1. Ответь, пожалуйста, ты в курсе, что значит .. ?
2. раздел
PHP & JavaScript & AJAX & HTML & FLASH
по каким соображениям был выбран?

-~{}~ 29.09.10 19:40:

На главную стканицу вдключил меню так:
не очень удачное название для файла с МЕНЮ.
<!--#include file="content.html"-->
"интуитивно" понятно
 

dimagolov

Новичок
это часом не IIS? там путь не обратными чертами надо разделять случайно?

вообще стоит почитать о том, относительно чего пути считаются, может и от document_root cайта, а не то диры текущего файла.
 

Guest2011

Новичок
Автор оригинала: Mr_Max
Guest2011
1. Ответь, пожалуйста, ты в курсе, что значит .. ?
2. раздел
по каким соображениям был выбран?

-~{}~ 29.09.10 19:40:


3.14ец. Я именно такое название б тоже выбрал для МЕНЮ.

"интуитивно" понятно
1. о каком знаке вопроса идет речь?
2. раздел был выбран этот т.к., по идее , он ближе к моей тематике
3 :) название для меню выбрал просто для теста, чтобы проверить будет ли оно подключаться вообще. Когда получится его подключить, то переименую content на menu

Автор оригинала: Mr_Max это часом не IIS?
у меня Denwer. тестирую сайт на локальном компе

Кто-то еще пользуется SSI?
Я пользуюсь. Я начинающий и поэтому иду от простомо к сложному
 

baev

‹°°¬•
Команда форума
о каком знаке вопроса идет речь?
— не о знаке вопроса, а о двух точках.

Цитата с википедии ( http://ru.wikipedia.org/wiki/SSI_(программирование) ):
file — указывает путь, относительно сканируемого документа; путь не может содержать ../ и не может быть абсолютным путем; всегда предпочтительнее использовать атрибут virtual;
 

Guest2011

Новичок
../../
-две точки и слеш это для перемещения на уровень вверх
-для чего нужен SSI я и сам знаю. Подключил же в стартовую страницу меню

но вот на другие страницы не подключается
 

Guest2011

Новичок
извиняюсь, это я воспринял как подпись Вашу последнюю фразу и поэтому её не прочитал до конца.

file — указывает путь, относительно сканируемого документа; путь не может содержать ../
Значит получается, что если использовать file то нельзя ссылаться на другую папку?
А при помощи virtual можно?


P.S. Я тестирую за локальным компьютером. Поэтому, насколько понимаю правильнее было бы использовать file, а virtual в том случае, когда файл перенесу на сервер. Правильно?
Если не сложно, растолкуйте, ато я с SSI столкнулся первый раз

-~{}~ 29.09.10 23:00:

т.е. получается, что все попытки использовать file для этих целей напрасны?

заменил file на virtual , заработало
 

newARTix

Новичок
Ragazzo
SSI отличный инструмент решающий _свои_ задачи. Он вообще не имеет отношения к PHP. Что за левые наезды? Есть даже современные подходы к кешированию отдельных частей веб-приложения с обертыванием в SSI. Если бы это никому не было нужно, он бы давно умер. А уж как простейший и быстрый способ накидать относительно не мелкий сайт (на нем можно и выделение текущих пунктов меню сделать) - SSI вообще идеален.
 

Ragazzo

TDD interested
newARTix
я знаю что такое SSI, а для кеширования способов итак куча...
>>А уж как простейший и быстрый способ накидать относительно не мелкий сайт
ну можно кидать и просто на одном html, только это не в эту группу с такими вопросами
 

fixxxer

К.О.
Партнер клуба
include file вообще не надо использовать, всегда юзай include virtual. В нем указывай тот же URL, по которому этот блок открывается если его просто написать в браузере.

P.S. че за наезды на SSI. В некоторых случаях отличный инструмент. Я например давно еще делал тулзу, которая на компе контентора генерит пачку SSI и заливает на сервак обновляя контент. Перевел потом на nginx с минимальными изменениями. Недавно выдержало DDOS (точнее, проблемой было только забитие канала, cpu load выше 30% не поднимался).
 

iceman

говнокодер
но сайт то он сделает на пхп +) тогда лучше в самом пхп сделать инклюд ;)
 

Guest2011

Новичок
Нет сайт не на пхп (просто тема близка к пхп)

-~{}~ 30.09.10 16:58:

Чтобы не создавать ещё одну тему напишу в этой
(тем более моя тема имеет лишь косвенное отношение к Php)


Решил основные блоки, которые повторяются на каждой странице (header, footer,menu) вынести в отдельные файлы и подключать при помощи SSI.

С подключением разобрался как уже писал выше при помощи virtual:
на главную страницу подключается шапка так:
Код:
<!--#include virtual="header.html"-->
а на страницу Доставка,
Код:
 <!--#include virtual="../header.html"-->
на остальные аналогично.

всё подключилось и выглядит хорошо, всё на своих местах.
схема расположения элементов на странице такая:



В шапке присутствует меню: главная доставка сотрудничество контакты
главная index.html лежит в корне сайта
остальные пункты из меню в шапке: delivery.html cooperation.html contact.html
находятся в одной папке под названием topmenu_page, которая тоже расположена в корне сайта

ссылки меню ведь на разных страницах будут отличаться путями.
Так ссылка с главной страницы на доставку будет
Код:
<a href="topmenu_page/delivery.html">Доставка</a>
а со страницы контакты на эту же страницу
Код:
<a href="delivery.html">Доставка</a>
т.е. визуальный вид меню будет на всех страницах один, а адреса ссылок будут разные
Непонятно как прописать в подключаемых файлах ссылки.

Я прочитал статью http://alex.ermilov.net/coding/ssi/ и ещё похожие статьи
в них говорится, что надо как-то так прописывать:


Код:
 <ul>
<li>   <a href="index.html">Главная</a> </li>

<li>  
 <!--#if expr="$DOCUMENT_URI!=/\/index.html/" --> 
 <a href="/"><a href="topmenu_page/delivery.html">Доставка</a>  
 
 <!--#elif expr="$DOCUMENT_URI=/\/topmenu_page\//" -->
 <a href="/"><a href="delivery.html">Доставка</a> 

  <!--#endif --> 
 </li>  

   <li><a href="topmenu_page/cooperation.html">Сотрудничество</a></li>
   <li><a href="topmenu_page/contacts.html">Контакты</a></li>
</ul>
я так прописал
после этого на всех страницах всё равно ссылки в меню не работают
и на главной странице пропал пункт доставка

Подскажите, пожалуйста, как организовать меню (вышеуказаным методом)
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Сделай в меню абсолютные ссылки и будет тебе счастье

-~{}~ 30.09.10 17:29:

тут phpfaq.ru/path
 

Guest2011

Новичок
абсолютные и относительные в теории это понятно
но вводят в заблуждение вот эти значки /\/

я просто с SSI столкнулся первый раз и не до конца понимаю вот этих вот инструкций /\/ .
Если в ссылках обычных ссылках как указать правильно путь всё понятно и просто, то в этих SSI инструкциях непонятно почему пишется
DOCUMENT_URI!=/\/index.html а не
DOCUMENT_URI!=/index.html

каков смысл этого значка /\
и как указать в этих $DOCUMENT_URI инструкциях правильно пути
можно ли там указывать путь к папке с файлами или надо только к конкретному файлу?
и ещё, как указывать в $DOCUMENT_URI пути если они длинее чем в вышеуказаных примерах, так(как в обычных ссылках):
Код:
<!--#if expr="$DOCUMENT_URI!=/\/../../" -->
или как-то так?
Код:
<!--#if expr="$DOCUMENT_URI!=/\///" -->
лучше, если бы Вы показали пример конкретно для моей страницы.

извиняюсь за настойчивость, но просто хочется раз и на всегда освоить ssi
(понять как правильно прописывать ссылки)
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Guest2011
я тебе дал ссылку.
нужно ее прочитать и сделать так, как там написано.
Тебе не нужен будет вагон условий
 

Guest2011

Новичок
В ссылках у меня все пути абсолютные, например
PHP:
<a href="topmenu_page/delivery.html">Доставка</a>
непонятно как прописывать тут :<!--#if expr="$DOCUMENT_URI!=-->

я теряюсь в слешах /\ \\/
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Сверху