Я хочу включить кэширование на уровне просмотра для просмотров страниц анонимных посетителей. Я включил соответствующее Middleware (я так думаю, по крайней мере).
MIDDLEWARE_CLASSES = [
'django.middleware.cache.UpdateCacheMiddleware', # This needs to be first https://docs.djangoproject.com/en/dev/topics/cache/#order-of-middleware-classes
'django.middleware.gzip.GZipMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'pagination.middleware.PaginationMiddleware',
'django.middleware.transaction.TransactionMiddleware',
'waffle.middleware.WaffleMiddleware',
'django.contrib.redirects.middleware.RedirectFallbackMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
]
Это должно автоматически установить соответствующие заголовки HTTP, верно? Ну, похоже, что это так.
Cache-Control max-age=600
Content-Encoding gzip
Content-Type text/html; charset=utf-8
Date Wed, 30 Nov 2011 18:46:05 GMT
Expires Wed, 30 Nov 2011 18:56:05 GMT
Last-Modified Wed, 30 Nov 2011 18:46:05 GMT
Vary:Cookie, Accept-Encoding
Теперь проблема в два раза. Во-первых, получение ресурса занимает около 1,7 секунды, что мне кажется слишком длинным для кэшированной страницы. Во-вторых, когда я смотрю на эту страницу с локальным сервером django, я все еще вижу многочисленные запросы MySQL на панели инструментов django. Это действительно означает, что кэширование не работает.
В firebug есть вкладка консоли под названием «Кэш», которая показывает следующее:
Last Modified Wed Nov 30 2011 13:46:05 GMT-0500 (EST)
Last Fetched Wed Nov 30 2011 13:46:05 GMT-0500 (EST)
Expires Wed Nov 30 2011 13:56:03 GMT-0500 (EST)
Data Size 11547
Fetch Count 17
Device disk
То, что кажется, предполагает, что кэширование работает. Я не совсем понимаю. Если на самом деле происходит кеширование, связано ли это с внутренним алгоритмом браузера для последнего изменения?
Спасибо за любые предложения.