【问题标题】:SSI #set variable and #echo issueSSI #set 变量和#echo 问题
【发布时间】:2011-05-03 20:59:33
【问题描述】:

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

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

但是当我想使用打印值时

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

它说

找不到变量“testVar”

有什么问题?我正在使用 IIS 7.5,我也在 Apache2 上进行了测试,但它也无法正常工作!

【问题讨论】:

    标签: server-side-includes


    【解决方案1】:

    这对我来说很好用:

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

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

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

    【讨论】:

      【解决方案2】:

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

      解决方案是将&lt;!--#set 放在&lt;!DOCTYPE 声明之后。

      【讨论】:

        【解决方案3】:

        IIS 不支持您的代码。

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

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

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

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

        【讨论】:

          【解决方案4】:

          我认为您需要在变量前面加上“$”来引用变量,如下所示:

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

          【讨论】:

            【解决方案5】:

            试试,

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

            如果不是,请使用 $testVar 确保您的变量被视为变量。

            【讨论】:

              猜你喜欢
              • 2012-08-22
              • 2016-06-29
              • 2019-06-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-09-17
              • 1970-01-01
              相关资源
              最近更新 更多