Ошибка в ssi директиве echo (nginx/0.7.61)
Maxim Dounin
mdounin at mdounin.ru
Thu Jul 16 08:07:30 MSD 2009
Hello!
On Thu, Jul 16, 2009 at 09:08:16AM +0600, Руслан Шарипов wrote:
> Утро доброе.
>
> Есть файл:
>
> [root at alpha /hd1/users/i5039/www/ssi]# cat index.shtml
> <!--#include virtual="/ssi/config.shtml" -->
> <!--#echo var="testvar" -->
>
> и файл
>
> [root at alpha /hd1/users/i5039/www/ssi]# cat config.shtml
> test ssi begin
> <!--#set var="testvar" value="true" -->
> test ssi end
>
> при запросе http://domainname/ssi/index.shtml
>
> получаем ответ:
> test ssi begin test ssi end (none)
>
> как видим ssi директива include отработала успешно (текст test ssi
> begin и test ssi end "заинклюдился"), а вот переменная testvar
> почему-то не проинициализировалась (echo вернул none), данная проблема
> возникла после обновления с линейки 0.6 (конкретно после какой версии
> не помню)
Include'ы в ssi nginx'ом обрабатываются параллельно. Если вы
хотите контроллировать последовательность их выполнения -
используйте параметр wait. Подробности тут:
http://sysoev.ru/nginx/docs/http/ngx_http_ssi_module.html
В 0.7.25 была изменена обработка подзапросов. Ранее
существовавший код фактически приводил к неявному wait для
статических файлов, и поэтому приведённый ssi работал как
ожидается. Теперь не приводит, wait надо указывать явно.
Maxim Dounin
More information about the nginx-ru
mailing list