Я изменяю внешний вид сайта (модификации CSS), но не вижу результата в Chrome из-за раздражающего постоянного кэша. Я старался Shift+ обновить, но это не работает.
Как я могу временно отключить кеш или обновить страницу так, чтобы я мог видеть изменения?
Chrome DevTools может отключить кэш.
Inspect Element
, чтобы открыть DevTools. Или используйте следующие сочетания клавиш : Network
на панели инструментов, чтобы открыть панель сети.Disable cache
вверху.Имейте в виду, что, как указано Tweet из @ ChromiumDev , этот параметр активен только при открытых devtools.
Обратите внимание, что это приведет к перезагрузке всех ресурсов. Если вы хотите отключить кэш только для некоторых ресурсов, вы можете изменить заголовок HTTP , который ваш сервер отправляет вместе с вашими файлами.
Если вы не хотите использовать флажок Disable cache
, длительное нажатие на кнопку обновления с открытым DevTools покажет меню с параметрами Hard Reload
или Empty Cache and Hard Reload
, которое должно иметь аналогичный эффект. Читайте о разница между вариантами . Доступны следующие ярлыки:
Очистка кэша слишком раздражает, когда вам нужно очищать кэш 30 раз в час ... поэтому я установил расширение Chrome с именем Classic Cache Killer, которое очищает кэш при каждой загрузке страницы.
Ссылка в Chrome Store (бесплатно)(теперь без вредоносных программ!)
Теперь мой макет json, javascript, css, html и data обновляется каждый раз при каждой загрузке страницы.
Я никогда должен беспокоиться, если мне нужно очистить кэш.
Я нашел около 20 очистителей кеша для Chrome, но этот казался легким и не требующим усилий. В обновлении Cache Killer теперь может оставаться «всегда включенным».
Примечание: я не знаю автора плагина. Я просто нашел его полезным.
Откройте консоль разработчика Chrome, нажав F12 и затем (с открытой консолью):
Щелкните правой кнопкой мыши (или удерживайте нажатой левую кнопку) на кнопке перезагрузки в верхней части браузера и выберите "Очистить кэш и полная перезагрузка".
Это будет выходить за рамки "Жесткой перезагрузки", чтобы полностью очистить кэш, гарантируя, что все, что загружено с помощью JavaScript и т.д., Также будет избегать использования кеша. Вам не нужно возиться с настройками или чем-то еще, это быстрое решение с одним выстрелом.
Есть еще два варианта отключить кэширование страниц в 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 как есть
Если вы не хотите редактировать настройки Chrome, вы можете использовать режим инкогнито для тех же результатов.
В настоящее время это находится на вкладке , которая используется по умолчанию. Возможно, вам придется прокрутить вниз. Этот флажок был перемещен по крайней мере пару раз, так как этот вопрос был задан. Последний раз я проверял, это было в средней колонке внизу. Если он открыт на более тонком экране и в разделе "Установки" есть 2 столбца, он может находиться справа вверху. Не стесняйтесь обновлять этот пост, если он изменится или прокомментируйте, и я обновлю пост.
В дополнение к опции отключения кэша (к которой вы можете обратиться с помощью кнопки в правом нижнем углу окна инструментов разработчика - Сервис | Инструменты разработчика, или Ctrl + Shift + I), на панели сети инструментов разработчика теперь можно щелкнуть правой кнопкой мыши и выбрать "Очистить кэш" во всплывающем меню.
Вместо нажатия "F5" Просто нажмите:
"Ctrl + F5"
В Канарском канале (и, возможно, последуют Dev и стабильный канал), это можно найти в качестве второго общего параметра слева в разделе «Общие».
В дополнение к этому всегда есть возможность переключиться в режим инкогнито с помощью Ctrl + Shift + N. Даже если это, к сожалению, также завершает ваш сеанс.
Чтобы было ясно, флажок отключить кэш в Chrome (v17 здесь, но, начиная с v15, я считаю) отсутствует в интерфейсе основных настроек. Это в пользовательском интерфейсе настроек инструментов разработчика.
В меню значков гаечного ключа окна браузера (меню настроек) выберите «Инструменты» → «Инструменты разработчика».
В появившемся пользовательском интерфейсе инструментов разработчика щелкните значок шестеренки справа внизу.
Установите флажок «Отключить кэш» в разделе «Сеть».
С помощью Ctrl+Shift+R обновить было приятно, но не получил все, что мне было нужно. некоторые вещи не обновляются, такие как данные, хранящиеся в js и css. нашел решение: панель инструментов Google для веб-разработчиков Chrome . После установки панели инструментов выберите параметры и "сброс страницы".
Отключить кеш в Chrome работает только при открытых инструментах разработчика
Пока ошибка не устранена, вы можете использовать Clear Cache плагин Chrome, и вы также можете установить для него комбинацию клавиш.
После установки щелкните правой кнопкой мыши и перейдите к параметрам:
Проверьте Automatically reload active tab after clearing data
:
Выберите Everything
для периода времени:
И тогда вы можете перейти в Меню => Инструменты => Расширения:
Нажмите на сочетание клавиш внизу:
И установите комбинацию клавиш, например, Ctrl + Shift +R:
На самом деле, если вы не возражаете против использования пропускной способности, по нескольким причинам более безопасно отключить кеширование, и это рекомендуется многими сайтами безопасности.
Хром не должен быть достаточно высокомерным, чтобы принимать решения и устанавливать настройки для пользователей.
Вы можете отключить кэш в UNIX с помощью --disk-cache-dir =/dev/null.
Поскольку это происходит неожиданно, возможны сбои, но если они произойдут, это явно укажет на более серьезную ошибку, которая должна быть исправлена в любом случае.
Это может кому-то помочь.
Я подстроил свой Nginx для сумасшедшего кеширования. Таким образом, отключение кеша в сетевых инструментах и явная очистка кеша не работают.
Очень простой, но скучный обходной путь, я просто открываю новую вкладку Incognito. Удивительно, но все время работает!
Жесткое обновление в режиме инкогнито делает свое дело каждый раз, когда я хочу перезагрузить в том же режиме.
Как насчет букмарклета, который меняет имя страницы, чтобы предотвратить кеширование страницы. В 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;})();
Меня просто поймали, но не обязательно из-за Chrome.
Я использую jQuery для выполнения AJAX запросов. У меня был атрибут кеша установлен в true в запросе:
$.ajax({
type: 'GET',
cache: true,
....
Установка этого параметра в false исправила мою проблему, но это не идеально.
Я понятия не имею, где эти данные сохраняются, но я знаю, что Chrome никогда не попадает на сервер для запроса.
Теперь есть лучший и быстрый способ (версия Chrome 59.x.x.):
Щелкните правой кнопкой мыши значок перезагрузки (слева от поля url), и вы получите раскрывающееся меню, выберите третий вариант: «Очистить кэш и выполнить полную перезагрузку».
Эта опция доступна только тогда, когда инструменты разработчика открыты ... (обратите внимание на разницу с опцией 2: 'Hard reload' -cmd-shift-R). Здесь нет кеша!
В интернет-магазине Chrome доступно расширение chrome с именем Clear Cache .
Я использую его каждый день, и я думаю, что это очень полезный инструмент. Вы можете использовать его в качестве кнопки перезагрузки и очистить кеш, а также, если вам нравятся, файлы cookie, хранилище локали, данные форм и т.д. Также вы можете определить, в каком домене это происходит. Таким образом, вы можете очистить все это только с помощью кнопки перезагрузки, которую вы все равно должны нажать - на выбранных вами доменах.
Очень очень хорошо!
Вы также можете определить сочетание клавиш для этого в настройках!
Еще один способ - запустить окно Chrome в режиме инкогнито .... Здесь кеш также должен быть полностью отключен.
Как я могу временно отключить кеш или обновить страницу так, чтобы я мог видеть изменения?
Неясно, на какой «кеш» вы ссылаетесь. Существует несколько различных методов, которые браузер может постоянно кэшировать. Веб-хранилище являясь одним из них, 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()
})
})
Еще одна опция для отключения кэша предоставлена моим 3-м расширением Chrome инспектор размера страницы , который отключает кэш точно так же, как Devtools.
Кроме того, расширение быстро и удобно отображает размер страницы, использование кэша, сетевые запросы и время загрузки веб-страницы. Плюс его открытый исходный код на Github .
Если вы используете ServiceWorkers (например, для прогрессивных веб-приложений), вам, вероятно, потребуется проверить «Обновление при перезагрузке» в разделе «Приложения»> «Сервисные работники» в инструментах разработчика.
Не уверен, что вы используете, но если вы используете ASP.Net, вы можете сделать следующее, что работает как шарм:
<link href="@Url.Content("~/Content/Site.css")[email protected]" rel="stylesheet" />
По сути, он будет автоматически добавлять дату и время в конец файла каждый раз, когда он запускается, то есть, поскольку имя файла технически отличается, вам никогда не придется беспокоиться о его повторном кэшировании.
У меня была такая же проблема, я пытался:
Затем я обнаружил, что использование манифеста .appcache для не-https сайта устарело . Я удалил свой файл site.appcache и его ссылку в теге html, и теперь я вижу последнюю версию каждой страницы!
Привет, если ваш сайт использует PHP, поместите следующий небольшой фрагмент PHP в начало вашей HTML-страницы:
//dev versioning - stop caching
$Rand = Rand(1, 99999999);
Теперь везде, где вы загружаете ресурсы, такие как CSS- или JS-файлы, в сценарий или элемент ссылки, вы добавляете сгенерированное случайное значение в URL запроса после добавления '?' на URI через PHP:
echo $Rand;
Это оно! Там не будет браузер, который кэширует ваш сайт больше - независимо от того, какой тип.
Конечно, удалите ваш код перед публикацией или просто установите $ Rand в пустую строку, чтобы снова разрешить кэширование.
Я использовал другие опции, описанные выше, но я считаю, что лучше всего добавить следующий параметр при запуске chrome.exe.
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disk-cache-size = 1 - media-cache = 1
Я считаю, что отключение медиа-кеша - хорошая идея, но для полноты картины.
На самом деле я хочу, чтобы опция полностью отключала кеш, чтобы использовать память для IO вместо моего диска (что также увеличило бы время загрузки в 10 раз!), Но я не думаю, что Chrome или какой-либо браузер в этом отношении есть такая возможность еще.
Убийца кэша Chrome - безусловно лучший вариант. Поскольку URL-адрес хранилища для установки кэша-убийцы недоступен, вы можете скачать файл CRX здесь:
https://www.crx4chrome.com/extensions/jpfbieopdmepaolggioebjmedmclkbap/
как только файл расширения будет загружен, откройте Chrome -> Другие инструменты -> Расширения, затем перетащите файл CRX из проводника или с рабочего стола (в зависимости от места, где вы скачали файл) в окно Chrome, чтобы установить расширение.
Я был в ситуации, когда браузер загружал данные кеша с диска, даже когда я проверял отключенный кеш (я использовал 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
Это моя ситуация и решение. Надеюсь, это может кому-нибудь помочь.
Начиная с версии 50 (если я правильно помню), опция «Отключить кеш» была удалена из настроек Devtool. Перейдите на вкладку «Сеть» и там есть опция «Отключить кеш».
Добавьте эту строку кода к себе, и она должна сделать свое дело.
<meta name="robots" content="noarchive">
Я использую (в Windows) Ctrl + Shift + Delete, и когда появляется диалоговое окно Chrome, нажмите клавишу ввода. Это можно настроить с тем, что необходимо очищать каждый раз, когда вы выполняете эту последовательность. Не нужно иметь dev. инструменты открываются в этом случае.