SSI #set变量和#echo问题

时间:2010-11-02 10:39:37

标签: server-side-includes

我有一个简单的.shtml文件,我已在其中声明了一个变量。

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

但是当我想使用

打印值时
<!--#echo var="testVar" -->

它说

  

无法找到变量'testVar'

有什么问题?我正在使用IIS 7.5,我也在Apache2上测试过,但它也没有用!

5 个答案:

答案 0 :(得分:1)

这对我来说很好用:

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

您是否正确配置了Apache?您可能需要启用mod_include。以下代码应在正确配置后输出日期:

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

答案 1 :(得分:1)

我有同样的问题。就我而言,我在主文件中设置了一个变量,并尝试在包含的模板中读取它。

解决方案是在<!--#set声明之后放置<!DOCTYPE

答案 2 :(得分:1)

IIS不支持您的代码。

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

IIS不支持#set,这就是它响应的原因。 &#34;变量&#39; testVar&#39;无法找到&#34;,因为它从未被创建过。

Windows服务器和Apache服务器具有相同的模块名称(SSI),并且它们使用相同的语法。但! Apache服务器支持#set和#if #else等其他命令,Windows服务器没有。所以混乱已经完成。

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

答案 3 :(得分:0)

我认为你需要在它前面用'$'来引用你的变量,如下所示:

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

答案 4 :(得分:0)

尝试,

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

如果没有,请使用$ testVar确保将变量视为变量。