這與問題Set Cache-Control: no-cache on GET requests類似,但沒有真正回答。覆蓋Cache-control:Private in ServiceStack
在API響應中,緩存控制頭被設置爲私有,並且我非常肯定我需要無緩存。我嘗試了一個ResponseFilter,但是這個值沒有改變。在代碼中添加或設置的位置並不明確,或者如何覆蓋,因此任何指導都不勝感激。
這與問題Set Cache-Control: no-cache on GET requests類似,但沒有真正回答。覆蓋Cache-control:Private in ServiceStack
在API響應中,緩存控制頭被設置爲私有,並且我非常肯定我需要無緩存。我嘗試了一個ResponseFilter,但是這個值沒有改變。在代碼中添加或設置的位置並不明確,或者如何覆蓋,因此任何指導都不勝感激。
在我們當前的實施中,我們正在使用Response.AddHeader(...)
在每項服務中手動設置。這是因爲我們想要控制每個服務的緩存過期時間。儘管如此,我仍然有興趣學習更清潔的方法。
Response.AddHeader(ServiceStack.Common.Web.HttpHeaders.CacheControl, String.Format("max-age={0}, public", ConfigurationManager.AppSettings["Cache.Expiration.Resource"]));
我使用了一個請求過濾器屬性,該屬性適用於不應在客戶端上緩存的每個服務或方法。
public class NoCacheAttribute : RequestFilterAttribute
{
public override void Execute(IHttpRequest req, IHttpResponse res, object responseDto)
{
res.AddHeader(HttpHeaders.CacheControl, "no-store,must-revalidate,no-cache,max-age=0");
}
}
謝謝! –