可以将esi:include或esi:eval语句的结果存储在esi变量中吗?

时间:2012-08-08 18:10:52

标签: akamai esi edge-side-includes

我想将ESI include或eval块的结果存储在ESI变量中。包含的内容超出了我的控制范围。它的格式是JSON。 我尝试了以下所有方面都无济于事。变量最终为空字符串。

<esi:assign name="variable_name">
'<esi:include src="$(url)" method="post" entity="$(param)" />'
</esi:assign>
<esi:assign name="variable_name">
'<esi:eval src="$(url)" method="post" entity="$(param)" />'
</esi:assign>

<esi:assign name="variable_name">
'''<esi:include src="$(url)" method="post" entity="$(param)" />'''
</esi:assign>
<esi:assign name="variable_name">
'''<esi:eval src="$(url)" method="post" entity="$(param)" />'''
</esi:assign>

我正在测试的ESI服务器是Akamai的ETS。

1 个答案:

答案 0 :(得分:4)

这是Akamai支持团队提供的解决方案。相当复杂,但效果非常好。


文件:json.txt

{ "a" : 1, "b" : 2 }

文件:frag.esi

<esi:text><esi:assign name="val">'''</esi:text><esi:include
src="json.txt"/><esi:text>'''</esi:assign></esi:text>

文件:container.esi

<esi:eval src="frag.esi" dca="esi" />

<esi:vars>
val = $(val)
</esi:vars>
相关问题