Я чесал голову, когда три волшебства meta
не работали в Firefox и Safari.
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
Очевидно, это может произойти, потому что некоторые браузеры будут игнорировать клиентскую сторону meta
, поэтому его следует обрабатывать на стороне сервера.
Я попробовал все ответы из этого поста для своих просмотров в классе (django==1.11.6
). Но, ссылаясь на ответы @Lorenzo и @Zags, я решил написать промежуточное программное обеспечение, которое я считаю простым.
Итак, добавляя к другим хорошим ответам,
# middleware.py
class DisableBrowserCacheMiddleware(object):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
response = self.get_response(request)
response['Pragma'] = 'no-cache'
response['Cache-Control'] = 'no-cache, no-store, must-revalidate'
response['Expires'] = '0'
return response
# settings.py
MIDDLEWARE = [
'myapp.middleware.DisableBrowserCacheMiddleware',
...