我想将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。
答案 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>