django: принудительное обновление кеша sh после обновления - PullRequest
1 голос
/ 29 мая 2020

После обновления экземпляра модели я перенаправляюсь обратно на «страницу сведений» этого экземпляра. Часть модели - это изображение, созданное из содержимого модели. В этом перенаправлении я хочу заставить браузер перезагружать изображение с сервера. Я пробовал это с заголовками, но это не сработало:

response = HttpResponseRedirect('/target/path/')
response['Cache-Control'] =  'no-cache'
response['Pragma'] = 'no-cache'
return response

Потому что я предполагаю, что перенаправление теряет заголовки.

Как я могу заставить страницу перезагрузить изображение, но только после того, как пользователь возвращается со страницы обновления?

EDIT:

изображение передается в теге img. Sr c на самом деле указывает на конечную точку сервера, которая генерирует изображение из «id» в ссылке sr c. Затем изображение следует кешировать до тех пор, пока оно не изменится.

Ответы [ 2 ]

0 голосов
/ 19 августа 2020

Я остановился на использовании декоратора djangos

@last_modified(last_modified_func)

. См. здесь . Функция может принимать те же параметры, что и декорированный метод (например, идентификатор объекта в моем случае). При этом я могу просто найти последние измененные метаданные в базе данных, и django будет обрабатывать заголовки If-modified-Since или If-unmodified-Since из запроса и либо вернуть ответ Not Modified, либо новое изображение.

0 голосов
/ 29 мая 2020

Как вы обслуживаете изображение? Хорошей идеей было бы добавить ha sh в конец имени файла изображения, а затем, когда вы обновляете изображение, измените это ha sh. Таким образом, когда изображение обновляется, браузер будет вынужден перезагрузить изображение.

Вы даже можете просто использовать метку времени последнего обновления файла ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...