Как заставить браузер обновиться

Статус
Закрыто для дальнейших ответов.

spocher102

Member
Регистрация
22.01.2016
Сообщения
13
Возникла такая проблема, делаю загрузку аватарки на сайт. Так вот нужно что бы аватарка автоматически менялась при загрузке нового фото. И вылез такой глюк что при первой загрузке фото аватарка не меняется, приходится обновлять браузер. Зато как обновишь в первый раз аватарки без проблем меняются автоматически. как можно заставить браузер обновиться в первый раз?
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 138
Почитай про .htaccess и Cache-Control

Первая же ссылка в гугле дает ответ
Запретить кеширование (указать свои расширения файлов разумеется)

<FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</FilesMatch>
Установить время кеширования в секундах

<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
Однако, к сожалению это не всегда работает корректно и браузер может проигнорировать данные правила.
Неправильно настроенный хостинг тоже может отрабатывать неверно.

Для 100% решения используют метод лома - добавляют в конце файла произвольные числа (чаще время генерации/загрузки), выглядит примерно так avatar.jpg?abc=1234567890 или avatar.jpg?r1a2nd=937sad326723, то есть меняют URL (буквы и цифры могут быть любые, но каждый раз уникальные). Для статической картинки на сервере это никак не сказывается, а вот браузер считает это новым файлом и заново загружает.
 

spocher102

Member
Регистрация
22.01.2016
Сообщения
13
метод лома сработал на отлично! Спасибо BaNru
 
Статус
Закрыто для дальнейших ответов.
Верх Низ