1. Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с Правилами раздела
    Скрыть объявление

[Помогите] Управление кэшем при помощи html, css

Тема в разделе "Вёрстка (HTML, CSS)", создана пользователем AlexGood, 5 сен 2018.

  1. AlexGood

    AlexGood

    Регистрация:
    28 ноя 2016
    Сообщения:
    254
    Симпатии:
    7
    кто-нибудь в курсе можно ли как-то управлять кэшем браузера при помощи html css ... возможно что-то прописывать в заголовках?
     
  2. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Вопрос сформулирован вообще непонятно.

    Если речь идёт о кешировании статики (стили, скрипты, изображения), то это действительно решается через заголовки - заголовки, которые сервер отправляет вместе с конкретным файлом.

    Если речь идёт о том, чтоб при изменении в css/js файлах браузеры сами сбрасывали кеш и заново эти файлы загружали, то это решается путём модификации ссылки на файл, размещённой в html. Модификации бывают разные: например, прописывание в пути к файлу или его названии хеша вычисленного на основе его содержимого, либо просто добавление к ссылке параметра с таймстампом времени последнего изменения данного файла. Ещё бывает дописывают номер ревизии/релиза. В общем, суть в том, чтоб ссылка изменилась и браузер не опознал, что у него этот файл уже закеширован.
     
    AlexGood и $iD нравится это.
  3. pasha-b

    pasha-b

    Регистрация:
    9 янв 2013
    Сообщения:
    190
    Симпатии:
    109
    При помощи .htaccess можно. Добавить
    Код:
    <ifModule mod_headers.c>
        #кэшировать HTML и HTM файлы на один день
        <FilesMatch "\.(html|htm)$">
            Header set Cache-Control "max-age=43200"
        </FilesMatch>
        #кэшировать CSS, JavaScript и текстовые файлы на одну неделю
        <FilesMatch "\.(js|css|txt)$">
            Header set Cache-Control "max-age=604800"
        </FilesMatch>
        #кэшировать флэш и изображения на месяц
        <FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$">
            Header set Cache-Control "max-age=2592000"
        </FilesMatch>
        #отключить кэширование
        <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
            Header unset Cache-Control
        </FilesMatch>
    </IfModule>
    
    Из комментариев к коду ясно. что и на сколько кешируется, можно поменять, как надо.
     
    AlexGood нравится это.
  4. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Только в случае, если статику отдаёт Apache, чего у нормальных хостеров быть не может.
     
    AlexGood нравится это.