Выбор ответа Junior Сборщики обновлено
Зачем хеш в имени файла
Вопрос
Зачем сборщик кладёт хеш содержимого в имя файла (app-8c1f2a.js)?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Кешировать файл надолго, а при изменении кода сменить имя. Это стратегия cache busting: ассетам ставят Cache-Control: max-age=31536000, immutable, а index.html кешируют коротко.
Варианты ответа
- Кешировать файл надолго, а при изменении кода сменить имяправильный ответ
- Чтобы защитить код от копирования и подмены на CDN
- Чтобы браузер проверил целостность файла по хешу в имени
- Чтобы файлы не конфликтовали с одинаковыми именами в node_modules
Разбор
Это стратегия cache busting: ассетам ставят Cache-Control: max-age=31536000, immutable, а index.html кешируют коротко. Новый билд даёт новые имена, и пользователи получают свежий код.
- Хеш в имени ничего не защищает.
- Проверку целостности делает атрибут
integrity(SRI), а не имя файла. - Имена в node_modules тут ни при чём.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.