2010-11-02 5 views
6

У меня есть простой файл .shtml, который я объявила в нем переменную.SSI #set variable и #echo issue

<!--#set var="testVar" value="12345" --> 

Но когда я хочу, чтобы напечатать значение с помощью

<!--#echo var="testVar" --> 

это говорит

Variable 'testVar' не может быть найден

В чем проблема? Я использую IIS 7.5, и я также тестировал его на Apache2, но он тоже не работает!

ответ

0

Я думаю, вы должны ссылаться на переменную с «$» перед ним, например, так:

<!--#echo var="$testVar" --> 
1

Это прекрасно работает для меня:

<!--#set var="testVar" value="12345" --> 
<!--#echo var="testVar" --> 

ли вы Apache настроен правильно? Возможно, вам потребуется включить mod_include. Следующий код должен выводить дату сконфигурирована правильно:

<!--#echo var="DATE_LOCAL" --> 
0

Try,

<!--#echo encoding="entity" var="testVar" --> 

Если нет, то, используйте $ testVar, чтобы убедиться, что ваша переменная рассматривается как Variable.

1

У меня была та же проблема. В моем случае я задавал переменную в основном файле и пытался ее прочитать в включенном шаблоне.

Решение должно было разместить <!--#set после объявления <!DOCTYPE.

1

IIS не поддерживает ваш код.

<!--#set var="testVar" value="12345" --> 

IIS не поддерживает #set, поэтому он отвечает. «Variable« testVar »не может быть найден», потому что он никогда не был создан.

Сервер Windows и сервер Apache имеют одинаковое имя модуля (SSI), и они используют один и тот же синтаксис. НО! Сервер Apache поддерживает #set и другие команды, такие как #if #else и т. Д., Которых нет у сервера Windows. Итак, путаница завершена.

Для получения списка команд, которые можно использовать в IIS: MSDN blog about SSI on IIS