我们如何在 Cloudflare 中缓存 .NET Core API 的响应?
我将以下属性与需要缓存的控制器操作一起使用,但这使得响应也被缓存在浏览器中。
`[ResponseCache(Duration = 120, Location = ResponseCacheLocation.Any, NoStore = false)]`
我们如何在 Cloudflare 中缓存 .NET Core API 的响应?
根据您的情况,如果您能分享更多见解就更好了。以便能够进行相应的调查。
但是,一般来说,直接在 .NET Core 中的控制器操作上使用缓存属性会在浏览器以及 Cloudflare 中缓存响应。
首先,在 Cloudflare 设置中启用“Origin Cache Control”。
在您的 .NET Core API 中,在响应中设置适当的 Cache-Control 标头,以指示 Cloudflare 进行缓存行为。
例如,您可以设置
Cache-Control header
来控制 Cloudflare 如何缓存响应。
在控制器操作中,您可以添加 [ResponseCache]
属性以及适当的缓存持续时间和设置。
[HttpGet]
[ResponseCache(Duration = 60)]
public IActionResult Get()
{
}
此外,请确保在 API 响应中正确设置 Cache-Control 标头。您可以通过在响应中设置 Cache-Control 标头来做到这一点,如下所示:
Response.Headers.Add("Cache-Control", "public, max-age=60");
注意:请参考这个官方文档,这可能对你有所帮助。