Какое время жизни кэша CSS, JS, IMG, WOFF файлов устанавливать на сервере для браузера?
Приветствую.
Недавно проверял сайт расширением LightHouse и он мне выдал рекомендацию увеличить сроки кэширования файлов разных: скрипты, стили, картинки и пр.
Стал искать информацию в сети о рекомендуемых сроках кэширования — не нашел никакой информации, даже в рекомендациях LightHouse. Может быть плохо искал. Стал смотреть на сроки кэширования файлов у разных сайтов. Результат — кто во что горазд: неделя, месяц, полгода, год, десять лет.
weranda, чем критичнее для вас нагружение каналов и серверов лишним трафиком - тем больше нужно ставить время кэша. Можете спокойно поставить XX дней, и больше не возвращаться к этому вопросу. При условии корректной обработки заголовка If-Modified-Since в вашем HTTP-сервере.
Написано
Алексей Уколов
@alexey-m-ukolov Куратор тега Веб-разработка
Если у вас настроен Cache Busting, как я учил в предыдущем вопросе, то указываете время жизни кэша до тепловой смерти вселенной.
Если Cache Busting не настроен, то нужно его настроить и дальше см. пункт 1.
Про CacheBusting еще раз благодарю.
А вот про кэширование, все же, есть открытые вопросы, появившиеся в связи с осмыслением темы. Начинают всплывать темы, о которых не задумывался раньше.
Пример такого вопроса:
Допустим, установил я кэш для изображений (.png, .jpg, .svg) сроком в год. И тут поменял логотип в теге img на другой. Что мы имеем? — А имеем мы старый логотип для пользователей с кэшем. Не буду же я устанавливать обработчик типа CacheBusting для каждого изображения на сайте на случай их изменения...
Написано
Алексей Уколов
@alexey-m-ukolov Куратор тега Веб-разработка
Не буду же я устанавливать обработчик типа CacheBusting для каждого изображения на сайте на случай их изменения...
Ну, не хотите - конечно, никто вас не заставит ¯\_(ツ)_/¯
Если вы не хотите использовать нормальные практики, то время жизни кэша нужно подбирать тогда самостоятельно исходя из особенностей проекта. Ну и использовать другие механики, ссылку на описание которых я тоже в прошлом ответе давал.
Ну, не хотите - конечно, никто вас не заставит ¯\_(ツ)_/¯
Дело не в том, что я не хочу, а в том, что в предыдущем вопросе речь шла о нескольких JS, CSS файлах, а вот об изображениях речи не было. Я просто недоумеваю — неужели и для всех изображений сайта желательно использовать метод CacheBusting?! Это же сколько ресурсов будет расходоваться при доступе к файлам на диске для проверки времени их создания при каждом открытии страницы — дофига, мне кажется. Для нескольких файлов, мне кажется, это нормальный вариант, а для всех подряд — не перебор ли?
Написано
Алексей Уколов
@alexey-m-ukolov Куратор тега Веб-разработка
Во-первых, Cache Busting как раз не предполагает никакой проверки "времени их создания при каждом открытии страницы". Если вы этого не понимаете, вам следует ещё раз внимательно прочитать статьи по ссылкам из предыдущего ответа.
Во-вторых, даже если всё же постоянно проверять (т.е. не делать Cache Busting, но при этом корректно отдавать заголовки кэширования), ресурсы потребуются пренебрежительно малые.