2012-08-08 75 views
3

我想將ESI包含或eval塊的結果存儲在ESI變量中。包含的內容超出了我的控制範圍。它的格式是JSON。 我試過下面所有的都無濟於事。變量結束爲空字符串。可以將esi:include或esi:eval語句的結果存儲在esi變量中嗎?

<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。

回答

3

這是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>