0
我加入清漆配置如何用c#mvc和Varnish做甜甜圈緩存?
sub vcl_fetch {
set beresp.do_esi = true;
}
}
在我的MVC應用程序中我有一個childaction
<div>@* this should not be cached, I change the returned value in my DB *@
1 @Html.Action("GetHour", "Index", new { id = 5 })
</div>
<div>
2
<esi:include>@* this should be cached *@
@Html.Action("GetHour", "Index", new { id = 5 })
</esi:include>
</div>
,並增加了請求頭
Request.Headers.Add("X-Esi", "1");
但光油保持緩存整個頁面。
我錯過了什麼? 我在瀏覽器中注意到請求標頭X-Esi不存在。 也清漆正確刪除標記<esi:include
在行動中的代碼GetHour非常簡單,只是從SQL Server中檢索一個小數。
我不認爲你可以將內容放在esi:include標籤中,並期望它被緩存。您需要在esi:include標記上指定src屬性: –
Ronald
如果您不希望緩存頁面,則應指定具有max-age的緩存控制標頭或者s-maxage爲0來告訴清漆不要緩存 – Ronald
你是對的。更改爲 esi:include>並將ttl配置爲0並且可以工作。謝謝。 –