Войти

Показать полную графическую версию : [решено] Сделать так чтобы браузер не брал данные из кеша.


ScorpionXXX
18-12-2015, 11:24
Добрый день. Есть небольшой сайт на простом HTML. Пример заходят на сайт видят какую-нибудь информацию, через минуту я редактирую содержимое странички и закидываю ее на сайт, но те кто заново заходят видят предыдущую содержимое и пока не нажмут F5 они будут заходить и видеть старые данные. Это на всех браузерах.
Мне сказали что в код можно добавить скрипт (или что-то такое) чтобы при открывание браузер не брал из кеша а закачивал заново. Может кто подскажет как решить проблему? Профессиональным вебмастером не являюсь.

Habetdin
19-12-2015, 18:58
ScorpionXXX, вам необходимо добавить заголовки, запрещающие кэширование:
# HTTP 1.1
Cache-Control: no-cache, no-store, must-revalidate
# HTTP 1.0
Pragma: no-cache
# Proxies
Expires: 0
Можно добавить мета-теги в код страницы (действительно для HTML4, для HTML5 - нет (http://dev.w3.org/html5/spec-preview/the-meta-element.html#attr-meta-http-equiv)):
<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">
Также это можно с помощью файла .htaccess, если веб-сервер — Apache:
<IfModule mod_headers.c>
Header set Cache-Control "no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires 0
</IfModule>
Или средствами PHP, если планируете отойти в дальнейшем от статичного сайта в виде HTML-страниц:
header("Cache-Control: no-cache, no-store, must-revalidate");
header("Pragma: no-cache");
header("Expires: 0");
Но тем, кто уже посмотрел старую версию страницы - придется еще раз форсированно её обновить.




© OSzone.net 2001-2012