it-swarm-ru.tech

Отключение кеша Chrome для разработки сайтов

Я изменяю внешний вид сайта (модификации CSS), но не вижу результата в Chrome из-за раздражающего постоянного кэша. Я старался Shift+ обновить, но это не работает.

Как я могу временно отключить кеш или обновить страницу так, чтобы я мог видеть изменения?

1532
tomermes

Chrome DevTools может отключить кэш.

  1. Щелкните правой кнопкой мыши и выберите Inspect Element, чтобы открыть DevTools. Или используйте следующие сочетания клавиш :
    • F12
    • Command+Option+i на Mac
    • Control+Shift+i в Windows или Linux
  2. НажмитеNetwork на панели инструментов, чтобы открыть панель сети.
  3. Проверить флажок Disable cache вверху.

screenshot of development tools panel

Имейте в виду, что, как указано Tweet из @ ChromiumDev , этот параметр активен только при открытых devtools.

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

Если вы не хотите использовать флажок Disable cache, длительное нажатие на кнопку обновления с открытым DevTools покажет меню с параметрами Hard Reload или Empty Cache and Hard Reload, которое должно иметь аналогичный эффект. Читайте о разница между вариантами . Доступны следующие ярлыки:

  • Command+Option+R на Mac
  • Control+Shift+R в Windows или Linux

long press

1919
Steve

enter image description here

Очистка кэша слишком раздражает, когда вам нужно очищать кэш 30 раз в час ... поэтому я установил расширение Chrome с именем Classic Cache Killer, которое очищает кэш при каждой загрузке страницы.

Ссылка в Chrome Store (бесплатно)(теперь без вредоносных программ!)

Теперь мой макет json, javascript, css, html и data обновляется каждый раз при каждой загрузке страницы

Я никогда должен беспокоиться, если мне нужно очистить кэш.

Я нашел около 20 очистителей кеша для Chrome, но этот казался легким и не требующим усилий. В обновлении Cache Killer теперь может оставаться «всегда включенным».

Примечание: я не знаю автора плагина. Я просто нашел его полезным.

236
Evildonald

Picture of reload menu

  1. Откройте консоль разработчика Chrome, нажав F12 и затем (с открытой консолью):

  2. Щелкните правой кнопкой мыши (или удерживайте нажатой левую кнопку) на кнопке перезагрузки в верхней части браузера и выберите "Очистить кэш и полная перезагрузка".

Это будет выходить за рамки "Жесткой перезагрузки", чтобы полностью очистить кэш, гарантируя, что все, что загружено с помощью JavaScript и т.д., Также будет избегать использования кеша. Вам не нужно возиться с настройками или чем-то еще, это быстрое решение с одним выстрелом.

195
JackArbiter

Есть еще два варианта отключить кэширование страниц в Chrome навсегда :

1. Отключить Chrome Cache в реестре

Открыть реестр (Пуск -> Команда -> Regedit)

Искать: HKEY_CLASSES_ROOT\ChromeHTML\Shell\open\command

Измените деталь после ... chrom.exe "на это значение: –disable-application-cache –media-cache-size=1 –disk-cache-size=1 — "%1"

Пример: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -disable-application-cache –media-cache-size=1 –disk-cache-size=1 — "%1"

ВАЖНЫЙ: 

  • есть пробел и дефис после ... chrome.exe " 

  • оставьте путь к chrome.exe как есть 

  • Если вы копируете строку, обязательно проверьте, являются ли кавычки фактическими кавычками. 

2. Отключите кэш Chrome, изменив свойства ярлыка

Щелкните правой кнопкой мыши значок Chrome и выберите «Свойства» в контекстном меню . Добавьте следующее значение в путь: –disk-cache-size=1

Пример: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" –disk-cache-size=1

ВАЖНЫЙ: 

  • есть пробел и дефис после ... chrome.exe " 

  • оставьте путь к chrome.exe как есть

39
user2653348

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

24
Karl Morrison
  1. F12 открыть Chrome DevTools
  2. F1 открыть настройки DevTools
  3. Проверьте Отключите кэш (когда открыт DevTools) , как показано ниже:

В настоящее время это находится на вкладке , которая используется по умолчанию. Возможно, вам придется прокрутить вниз. Этот флажок был перемещен по крайней мере пару раз, так как этот вопрос был задан. Последний раз я проверял, это было в средней колонке внизу. Если он открыт на более тонком экране и в разделе "Установки" есть 2 столбца, он может находиться справа вверху. Не стесняйтесь обновлять этот пост, если он изменится или прокомментируйте, и я обновлю пост.

enter image description here

21
Tony L.

В дополнение к опции отключения кэша (к которой вы можете обратиться с помощью кнопки в правом нижнем углу окна инструментов разработчика - Сервис | Инструменты разработчика, или Ctrl + Shift + I), на панели сети инструментов разработчика теперь можно щелкнуть правой кнопкой мыши и выбрать "Очистить кэш" во всплывающем меню.

21
Tim Keating

Вместо нажатия "F5" Просто нажмите:

"Ctrl + F5"

17
Arvand

В Канарском канале (и, возможно, последуют Dev и стабильный канал), это можно найти в качестве второго общего параметра слева в разделе «Общие».

Disable Cache in Chrome Canary Channel

В дополнение к этому всегда есть возможность переключиться в режим инкогнито с помощью Ctrl + Shift + N. Даже если это, к сожалению, также завершает ваш сеанс. 

17
Bruiser

Чтобы было ясно, флажок отключить кэш в Chrome (v17 здесь, но, начиная с v15, я считаю) отсутствует в интерфейсе основных настроек. Это в пользовательском интерфейсе настроек инструментов разработчика.

  1. В меню значков гаечного ключа окна браузера (меню настроек) выберите «Инструменты» → «Инструменты разработчика».

  2. В появившемся пользовательском интерфейсе инструментов разработчика щелкните значок шестеренки справа внизу.

  3. Установите флажок «Отключить кэш» в разделе «Сеть».

14
Mason

С помощью Ctrl+Shift+R обновить было приятно, но не получил все, что мне было нужно. некоторые вещи не обновляются, такие как данные, хранящиеся в js и css. нашел решение: панель инструментов Google для веб-разработчиков Chrome . После установки панели инструментов выберите параметры и "сброс страницы".

14
tomermes

Отключить кеш в Chrome работает только при открытых инструментах разработчика

13
jamiethepiper

Пока ошибка не устранена, вы можете использовать Clear Cache плагин Chrome, и вы также можете установить для него комбинацию клавиш.

После установки щелкните правой кнопкой мыши и перейдите к параметрам:

enter image description here

Проверьте Automatically reload active tab after clearing data:

enter image description here

Выберите Everything для периода времени:

enter image description here

И тогда вы можете перейти в Меню => Инструменты => Расширения:

enter image description here

Нажмите на сочетание клавиш внизу:

enter image description here

И установите комбинацию клавиш, например, Ctrl + Shift +R:

enter image description here

12
Răzvan Flavius Panda

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

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

Вы можете отключить кэш в UNIX с помощью --disk-cache-dir =/dev/null.

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

8
Kevin Chadwick

Это может кому-то помочь. 

Я подстроил свой Nginx для сумасшедшего кеширования. Таким образом, отключение кеша в сетевых инструментах и ​​явная очистка кеша не работают.

Очень простой, но скучный обходной путь, я просто открываю новую вкладку Incognito. Удивительно, но все время работает!

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

6
Rexford

Как насчет букмарклета, который меняет имя страницы, чтобы предотвратить кеширование страницы. В Chrome вы создадите новую закладку, а затем вставите код в URL. Нажмите на закладку, и страница перезагрузится с отметкой времени, чтобы разрушить кэш.

javascript:(function(){var idx = location.href.indexOf('?');var d = new Date();var str = location.href.substr(0,idx) + '?version=' + d.getTime();location.href=str; void 0;})();
5
mbokil

Меня просто поймали, но не обязательно из-за Chrome.

Я использую jQuery для выполнения AJAX запросов. У меня был атрибут кеша установлен в true в запросе:

   $.ajax({
        type: 'GET',
        cache: true,
        ....

Установка этого параметра в false исправила мою проблему, но это не идеально.

Я понятия не имею, где эти данные сохраняются, но я знаю, что Chrome никогда не попадает на сервер для запроса.

4
DynamicDan

Теперь есть лучший и быстрый способ (версия Chrome 59.x.x.): 

Щелкните правой кнопкой мыши значок перезагрузки (слева от поля url), и вы получите раскрывающееся меню, выберите третий вариант: «Очистить кэш и выполнить полную перезагрузку».

Эта опция доступна только тогда, когда инструменты разработчика открыты ... (обратите внимание на разницу с опцией 2: 'Hard reload' -cmd-shift-R). Здесь нет кеша!

4
Luftwaffle

В интернет-магазине Chrome доступно расширение chrome с именем Clear Cache .

Я использую его каждый день, и я думаю, что это очень полезный инструмент. Вы можете использовать его в качестве кнопки перезагрузки и очистить кеш, а также, если вам нравятся, файлы cookie, хранилище локали, данные форм и т.д. Также вы можете определить, в каком домене это происходит. Таким образом, вы можете очистить все это только с помощью кнопки перезагрузки, которую вы все равно должны нажать - на выбранных вами доменах.

Очень очень хорошо!

Вы также можете определить сочетание клавиш для этого в настройках!

Еще один способ - запустить окно Chrome в режиме инкогнито .... Здесь кеш также должен быть полностью отключен.

3
chris

Как я могу временно отключить кеш или обновить страницу так, чтобы я мог видеть изменения?

Неясно, на какой «кеш» вы ссылаетесь. Существует несколько различных методов, которые браузер может постоянно кэшировать. Веб-хранилище являясь одним из них, Cache-Control являясь другим.

В некоторых браузерах также есть Cache , используемая совместно с Service Workers , для создания Progressive Web Apps (PWA), обеспечивающих автономную поддержку.

Очистить кеш для PWA

self.caches.keys().then(keys => { keys.forEach(key => console.log(key)) })

чтобы вывести список ключей кеша, запустите:

self.caches.delete('my-site-cache')

удалить ключ кеша по имени (т.е. my-site-cache). Затем обновите страницу.

Если после обновления вы увидите какие-либо ошибки, связанные с работником, вам может потребоваться отменить регистрацию зарегистрированных работников:

navigator.serviceWorker.getRegistrations()
  .then(registrations => {
    registrations.forEach(registration => {
      registration.unregister()
    }) 
  })
2
Josh Habdas

Еще одна опция для отключения кэша предоставлена ​​моим 3-м расширением Chrome инспектор размера страницы , который отключает кэш точно так же, как Devtools.

Кроме того, расширение быстро и удобно отображает размер страницы, использование кэша, сетевые запросы и время загрузки веб-страницы. Плюс его открытый исходный код на Github .

 Screenshot - Page Size Inspector

2
Tomi Mickelsson

Если вы используете ServiceWorkers (например, для прогрессивных веб-приложений), вам, вероятно, потребуется проверить «Обновление при перезагрузке» в разделе «Приложения»> «Сервисные работники» в инструментах разработчика.

enter image description here

2
Bob

Не уверен, что вы используете, но если вы используете ASP.Net, вы можете сделать следующее, что работает как шарм:

<link href="@Url.Content("~/Content/Site.css")[email protected]" rel="stylesheet" />

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

2
MattE

У меня была такая же проблема, я пытался:

  • Control Shift R,
  • Отключить кеш в F12
  • Управление F5.

Затем я обнаружил, что использование манифеста .appcache для не-https сайта устарело . Я удалил свой файл site.appcache и его ссылку в теге html, и теперь я вижу последнюю версию каждой страницы!

1
Ole EH Dufour

Привет, если ваш сайт использует PHP, поместите следующий небольшой фрагмент PHP в начало вашей HTML-страницы:

   //dev versioning - stop caching
   $Rand = Rand(1, 99999999);

Теперь везде, где вы загружаете ресурсы, такие как CSS- или JS-файлы, в сценарий или элемент ссылки, вы добавляете сгенерированное случайное значение в URL запроса после добавления '?' на URI через PHP:

    echo $Rand;

Это оно! Там не будет браузер, который кэширует ваш сайт больше - независимо от того, какой тип.

Конечно, удалите ваш код перед публикацией или просто установите $ Rand в пустую строку, чтобы снова разрешить кэширование.

0
Torsten Barthel

Я использовал другие опции, описанные выше, но я считаю, что лучше всего добавить следующий параметр при запуске chrome.exe.

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disk-cache-size = 1 - media-cache = 1

Я считаю, что отключение медиа-кеша - хорошая идея, но для полноты картины.

На самом деле я хочу, чтобы опция полностью отключала кеш, чтобы использовать память для IO вместо моего диска (что также увеличило бы время загрузки в 10 раз!), Но я не думаю, что Chrome или какой-либо браузер в этом отношении есть такая возможность еще.

0
Ahmed

Убийца кэша Chrome - безусловно лучший вариант. Поскольку URL-адрес хранилища для установки кэша-убийцы недоступен, вы можете скачать файл CRX здесь:

https://www.crx4chrome.com/extensions/jpfbieopdmepaolggioebjmedmclkbap/

как только файл расширения будет загружен, откройте Chrome -> Другие инструменты -> Расширения, затем перетащите файл CRX из проводника или с рабочего стола (в зависимости от места, где вы скачали файл) в окно Chrome, чтобы установить расширение.

0
BernieSF

Я был в ситуации, когда браузер загружал данные кеша с диска, даже когда я проверял отключенный кеш (я использовал Chrome). Все мои css и js загружались с сервера, но не с веб-страницы. Это происходило как на моем местном, так и на Производственном.

Чтобы исправить это, мне нужно добавить в свой URL дополнительный параметр, чтобы заставить браузер получать веб-страницу с сервера, даже контроллеру это не нужно.

Я использовал ASP.Net, вот мой пример

//Controller function
public ActionResult Index()
    {
        return View();
    }
//Link
@Html.Action("Index", "Home", new { ts = DateTime.Now.Ticks.ToString()})

В результате будет сгенерирована ссылка, например: http://www.myweb.com/Home/Index?ts=636558555408282209

Это моя ситуация и решение. Надеюсь, это может кому-нибудь помочь.

0
Jansen

Начиная с версии 50 (если я правильно помню), опция «Отключить кеш» была удалена из настроек Devtool. Перейдите на вкладку «Сеть» и там есть опция «Отключить кеш».

0
boi_echos

Добавьте эту строку кода к себе, и она должна сделать свое дело.

<meta name="robots" content="noarchive">
0
Hossein Hajizadeh

Я использую (в Windows) Ctrl + Shift + Delete, и когда появляется диалоговое окно Chrome, нажмите клавишу ввода. Это можно настроить с тем, что необходимо очищать каждый раз, когда вы выполняете эту последовательность. Не нужно иметь dev. инструменты открываются в этом случае.

0
santon