• 287
  • 0
  • Адаптировал: irbees2008
  • Уровень сложности исполнения: Справочник

Всем привет. Сегодня в одной из групп в контакте про верстку и программирование был задан вопрос как отключить кеш в браузере? Мдаааа..
Просто удивляют люди ,тот чел постоянно меняет основную страничку в плоть до стилей и вот некоторые изменения не находят отклика, приходится чистить кеш браузера. Но суть в чем, человеку лень глянуть настройки браузера , и в конце концов есть поисковики, забил вопрос получил кучу ответов посмотрел, выбрал. Ну если нет того что нужно спрашивай у знатоков .
Ну я уже затрагивал тему кеширования на стороне пользователя, это получается тема наоборот, но и здесь есть несколько решений.

Итак приступим

1.Запрет на кэширование браузером и прокси-сервером

Код:
<meta http-equiv="Cache-Control" content="no-cache">

2.Запрет кэширования страницы, только браузером
Код:
<meta http-equiv="Cache-Control" content="private">

3.Также мы можем сообщить браузеру, сколько хранить документ в кэше. После чего, кэш будет обновлен.
Код:
<meta http-equiv="Cache-Control" content="max-age=3600, must-revalidate">

4. Тоже самое для прокси-сервера.
Код:
<meta http-equiv="Cache-Control" content="max-age=3600, proxy-revalidate">

5. Запрещаем кэширование страницы с помощью PHP, информация выводиться через header заголовки. Вот абсолютный запрет на кэш:
Код:
<?php
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Expires: " . date("r"));
echo "<h1>", date("H:i:s"), "</h1>";
?>

6. Вариант с разрешимением кэширование только на 1 час.
Код:
<?php
/*
** Разрешаем кэширование на 1 час
*/
header("Cache-Control: public");
header("Expires: " . date("r", time() + 3600));
echo "<h1>", date("H:i:s"), "</h1>";
?>

7. Ну а теперь .htaccess
Все можно сделать на уровне конфигураций сервера Apache. Открываем конфигурационный файл Apache и наблюдаем следующую картину:
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
...
AddModule mod_expires.c
AddModule mod_headers.c

Как видите модули mod_expires и mod_headers включены.

Далее в файле .htaccess, запрещаем кэшировать выводимые данные. Файл .htaccess будет распространяться на директорию, в которой лежит, и на все субдиректории.
Код:
# Заголовок Cache-Control
<IfModule mod_headers.c>
Header append Cache-Control "no-store, no-cache, must-revalidate"
</IfModule>
# Заголовок Expires
<IfModule mod_expires.c>
ExpiresActive On ExpiresDefault "now"
</IfModule>

Полный запрет кэширования, повышает нагрузку на сервер. Лучше, установите определенное время, на которое можно кэшировать документы. Например, установим кэширование на 1 час:

Код:
# Заголовок Cache-Control
<IfModule mod_headers.c>
Header append Cache-Control "public"
</IfModule>

# Заголовок Expires
<IfModule mod_expires.c>
ExpiresActive On ExpiresDefault "access plus 1 hours"
</IfModule>

Вот и все ,пользуемся.

Можешь почитать и вот эту статейку "Выводим блоки для определенных групп пользователей"

mistakes

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Ваше мнение

Ваше отношение к TWIG
Результаты

----