Почему при разработке ничего не берется из кэша

Ответ

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

Вот как можно отключить кэш в браузере Chrome DevTools:

  1. Откройте DevTools (F12)
  2. Перейдите во вкладку Network
  3. Поставьте галочку "Disable cache" (включится только при открытых DevTools)

Для веб-пакета можно добавить в конфиг:

devServer: {
  headers: {
    'Cache-Control': 'no-store'
  }
}

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

Ответ 18+ 🔞

Да ты посмотри, какие хитрые штуки придумали, чтобы мозги не выносило при разработке! Вот сидишь, меняешь стиль кнопки, а она, сука, как была синяя, так и остаётся, будто в рот тебе чих-пых! Всё потому, что браузер, падла, закэшировал старый файл и думает: "А, ну его нахуй, новый, и так сойдёт".

Чтобы этого не было, надо ему, этому браузеру, мозги вправить. В Хроме, например, делается просто, как три копейки:

  1. Тыкаешь F12 – и вот они, DevTools, красавчики.
  2. Ищешь вкладку "Network" (Сеть, блядь).
  3. И там, как царь, ставишь галочку "Disable cache". Главное помнить – работает эта пакость только пока DevTools открыты. Закрыл – и опять этот ёбаный кэш вступит в силу.

А если ты крутишь проект на каком-нибудь Webpack Dev Server, то можно ему в конфиг настучать по рукам, чтобы не кэшировал. Добавляешь такую штуку:

devServer: {
  headers: {
    'Cache-Control': 'no-store'
  }
}

Ну а для продакшена, чтобы совсем уже не было проблем, имена файлов при сборке обычно делают с уникальным хэшом. Типа main.abcd1234.js. Новый билд – новый хэш, и браузеру хоть кол на голове теши, он вынужден качать свежий файл, потому что адрес-то другой! Хуй с горы, а не старый кэш. Вот так-то, просто и со вкусом.