Борьба с клиентским кэшированием в Django

Я использую render_to_response ярлык и не хочу обрабатывать определенный объект Ответа добавить дополнительные заголовки для предотвращения клиентского кэширования.

Я хотел бы иметь ответ, который содержит:

  • Прагма: без кэшей
  • Управление кэша: без кэшей
  • Управление кэша: должен - подтверждать

И все другие изящные способы, которыми браузеры, надо надеяться, интерпретируют как директивы, чтобы не кэшироваться.

Существует ли промежуточное программное обеспечение без кэшей или что-то подобное, которое может добиться цели с минимальным проникновением кода?

66
задан Lorenzo 19 January 2010 в 17:29
поделиться

2 ответа

Вы можете достичь этого с помощью декоратора Cache_Control. Пример документации :

from django.views.decorators.cache import never_cache

@never_cache
def myview(request):
   # ...
89
ответ дан 24 November 2019 в 14:53
поделиться
-

На самом деле написание собственного промежуточного программного обеспечения было достаточно легко:

from django.http import HttpResponse


class NoCacheMiddleware(object):

    def process_response(self, request, response):

        response['Pragma'] = 'no-cache'
        response['Cache-Control'] = 'no-cache must-revalidate proxy-revalidate'

        return response

до сих пор не ведет себя так, будто я хотел, но так ни один не делает никто @never_cache.

7
ответ дан 24 November 2019 в 14:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: