0

这是来自django 文档

condition(etag_func=None, last_modified_func=None)
etag(etag_func)
last_modified(last_modified_func)

These decorators can be used to generate ETag and Last-Modified headers

然而,这也来自django 文档

Additionally, the cache middleware automatically sets a few headers in each HttpResponse:
Sets the Last-Modified header to the current date/time when a fresh (uncached) version of the page is requested.
Sets the Expires header to the current date/time plus the defined CACHE_MIDDLEWARE_SECONDS.
Sets the Cache-Control header to give a max age for the page -- again, from the CACHE_MIDDLEWARE_SECONDS setting.

所以我想知道当我同时使用站点缓存和条件装饰器时 Last-Modified 需要什么值。
编辑:另外,您会建议同时使用它们,还是只使用其中之一?

4

1 回答 1

1

ETag如果,Last-ModifiedExpires标头不存在,缓存中间件只会设置它们(请参阅从UpdateCacheMiddleware调用的patch_response_headers方法)。

并且由于装饰器将在视图返回响应后直接执行,因此在中间件运行时装饰器标头已经存在。

简而言之:Last-Modified将具有来自 condition/last_modified 装饰器的值。

于 2011-08-15T00:21:39.237 回答