перенаправление в джанго - PullRequest
1 голос
/ 10 января 2011

На моей домашней странице у меня есть картинка профиля при смене профиля, я обновляю БД и перенаправляю страницу в / home. Но теперь, когда я перенаправляю старую картинку, она остается прежней до нажатия кнопки обновления

Это в коде Python

 return HttpResponseRedirect('/home')

Это базовая html-страница в / home

   <img src="{{photo}}" ></img>

Ответы [ 2 ]

1 голос
/ 11 января 2011

Я прочитал один трюк, заключающийся в написании чего-то вроде:

<img src="{{photo}}?version={{version}}"></img>

Где версия - это номер новой версии, который вы увеличиваете при обновлении файла (вы можете использовать альтернативно{{photo.file}} и {{photo.version}}).Таким образом, URL будет другим, и браузер не будет использовать кэшированную версию.

1 голос
/ 10 января 2011

Возможно, изображение профиля кешируется браузером.Есть несколько способов избежать этого:

  • отключить кэширование для, изменив заголовки ответа для него.Это плохая идея для производства, потому что картинка никогда не будет кэшироваться, поэтому каждый запрос страницы будет извлекать картинку, что значительно увеличивает трафик

  • и изменяетимя файла фотографии при обновлении.То есть вы можете использовать хеш содержимого или что-то вроде SHA1(userid + timestamp of upload)

  • использовать HTTP ETag в заголовке ответа на картинку

...