Какое время жизни кэша CSS, JS, IMG, WOFF файлов устанавливать на сервере для браузера?

Приветствую.

Недавно проверял сайт расширением LightHouse и он мне выдал рекомендацию увеличить сроки кэширования файлов разных: скрипты, стили, картинки и пр.

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

Какие есть практики по этой ситуации?

Дополнительно:

Устанавливайте любое удобное значение. При правильной работе с кэшем клиенты всегда получат свежую версию файла (если файл был обновлён).

  • А как это самое «удобное» значение определить? Про это и спрашиваю.
    Какая логика лежит в определении срока кэша?
  • weranda, чем критичнее для вас нагружение каналов и серверов лишним трафиком - тем больше нужно ставить время кэша. Можете спокойно поставить XX дней, и больше не возвращаться к этому вопросу. При условии корректной обработки заголовка If-Modified-Since в вашем HTTP-сервере.

Если у вас настроен Cache Busting, как я учил в предыдущем вопросе, то указываете время жизни кэша до тепловой смерти вселенной.
Если Cache Busting не настроен, то нужно его настроить и дальше см. пункт 1.

  • Про CacheBusting еще раз благодарю.
    А вот про кэширование, все же, есть открытые вопросы, появившиеся в связи с осмыслением темы. Начинают всплывать темы, о которых не задумывался раньше.

    Пример такого вопроса:
    Допустим, установил я кэш для изображений (.png, .jpg, .svg) сроком в год. И тут поменял логотип в теге img на другой. Что мы имеем? — А имеем мы старый логотип для пользователей с кэшем. Не буду же я устанавливать обработчик типа CacheBusting для каждого изображения на сайте на случай их изменения...

  • Не буду же я устанавливать обработчик типа CacheBusting для каждого изображения на сайте на случай их изменения...

    Ну, не хотите - конечно, никто вас не заставит ¯_(ツ)_/¯

    Если вы не хотите использовать нормальные практики, то время жизни кэша нужно подбирать тогда самостоятельно исходя из особенностей проекта. Ну и использовать другие механики, ссылку на описание которых я тоже в прошлом ответе давал.

  • Алексей Уколов,

    Ну, не хотите - конечно, никто вас не заставит ¯_(ツ)_/¯

    Дело не в том, что я не хочу, а в том, что в предыдущем вопросе речь шла о нескольких JS, CSS файлах, а вот об изображениях речи не было. Я просто недоумеваю — неужели и для всех изображений сайта желательно использовать метод CacheBusting?! Это же сколько ресурсов будет расходоваться при доступе к файлам на диске для проверки времени их создания при каждом открытии страницы — дофига, мне кажется. Для нескольких файлов, мне кажется, это нормальный вариант, а для всех подряд — не перебор ли?

  • Во-первых, Cache Busting как раз не предполагает никакой проверки "времени их создания при каждом открытии страницы". Если вы этого не понимаете, вам следует ещё раз внимательно прочитать статьи по ссылкам из предыдущего ответа.
    Во-вторых, даже если всё же постоянно проверять (т.е. не делать Cache Busting, но при этом корректно отдавать заголовки кэширования), ресурсы потребуются пренебрежительно малые.

От контента зависит. Если страницу создал и сто лет на ней ничего не меняешь, то время кэша 100 лет будет в самый раз.

 

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

 

    • Какое время жизни кэша CSS, JS, IMG, WOFF файлов устанавливать на сервере для браузера?Есть ответ
    • 07.04.2024
    Ответить

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

    Обычно рекомендуется устанавливать время жизни кэша для статических файлов, таких как CSS, JS, IMG и WOFF файлов, на длительный период времени. Например, можно установить время жизни кэша на несколько месяцев или даже год. Это позволит браузеру кэшировать файлы и не запрашивать их с сервера каждый раз, когда пользователь посещает страницу.

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

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

    Header set Cache-Control "max-age=31536000, public"

Оставить комментарий