2010-11-02 43 views
6

我有一个简单的.shtml文件,我已经在其中声明了一个变量。SSI #set变量和#echo问题

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

但是,当我要打印使用值

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

它说

变量 '的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

尝试,

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

如果没有,那么,使用$的testvar,以确保您的变量视为变量。

1

我有同样的问题。在我的情况下,我在主文件中设置了一个变量,并试图在包含的模板中读取它。

解决的办法是在<!DOCTYPE声明后放置<!--#set

1

IIS不支持您的代码。

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

IIS不支持#set,这就是它响应的原因。 “变量'testVar'找不到”,因为它从来没有被创建过。

Windows服务器和Apache服务器具有相同的模块名称(SSI),它们使用相同的语法。但! Apache服务器支持#set和其他命令,如#if #else等windows服务器不支持的命令。所以混淆是完整的。

有关可在IIS中使用的命令列表: MSDN blog about SSI on IIS