Как очистить кэш htaccess

Обновлено: 05.07.2024

Для моего сайта у меня есть следующие правила htaccess:

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

ОТВЕТЫ

Ответ 1

Вы можете заставить браузеры кэшировать что-то, но

Вы не можете заставить браузеры очистить кеш.

Таким образом, единственным способом (AMAIK) является использование нового URL для ваших ресурсов. Что-то вроде версий.

Ответ 2

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

Аналогичным методом является просто добавить параметр версии в строку URL, которая является случайной строкой/номером или номером версии, и нацелить только измененные файлы.

Например, если вы измените свой CSS-сайт и он выглядит неуклюжим, пока вы не обновите силу, просто добавьте ?ver=1.1 в импорт CSS в начале файла. Это для браузера - это другой файл, но вам нужно изменить импорт, а не фактическое местоположение или имя файла.

<link href="assets/css/style.css" rel="stylesheet" type="text/css" />

<link href="assets/css/style.css?ver=1.1" rel="stylesheet" type="text/css" />

Отлично подходит для файлов javascript.

Ответ 3

У меня возникла ваша проблема.

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

Ответ 4

Вы не можете заставить браузеры очистить кеш.

Ваш .html файл, кажется, перезагружается раньше, чем истекает через 10 дней. Вам нужно обновить ваш .html файл и переместить все ваши файлы в новую папку, например version-2/ , или добавить идентификатор версии для каждого файла, например mypicture-2.jpg . Затем вы ссылаетесь на эти новые файлы в вашем .html файле, и браузер будет загружать их снова, потому что местоположение изменилось.

Ответ 5

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

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

Надеюсь, это поможет.

Ответ 6

Вы можете установить "доступ плюс 1 секунда", и таким образом он будет обновляться при следующем входе пользователя в сайт. Сохраните настройку в течение одного месяца.

Ответ 7

Наиболее простым направлением является добавление файла к запросу. например,

myfile.txt 2014-10-30-13: 12: 33

Ответ 8

Измените имя файла .CSS. Загрузите страницу, а затем снова измените файл в оригинальном имени, которое оно работает для меня.

Ответ 9

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

У меня нет определенного номера версии для этого файла, поэтому я просто хэш текущей даты и времени (час и минута) и передаю его как номер версии:

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

Ответ 10

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

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

Так, например, если вы храните весь css и javascript своего сайта в одной основной папке

Затем вы можете начать ссылаться на него как "assets-XXX" в свой html и использовать такое правило, чтобы выбить все содержимое ресурсов из кеша.

Обратите внимание, что если вы это сделаете, после того, как вы его заработаете, измените значение 302 на 301, а затем начнет кэширование. Когда он будет 302, он не будет кэшировать на уровне браузера, потому что это временная переадресация. Если вы сделаете это так, то вы можете увеличить время истечения срока действия до 30 дней для всех активов, так как вы можете легко выкинуть вещи из кеша, просто изменив имя папки на странице входа.

Для моего сайта у меня есть следующие правила htaccess:

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

Вы можете заставить браузеры что-то кэшировать, но

Вы не можете заставить браузеры очистить свой кеш.

Таким образом, единственный (AMAIK) способ - использовать новый URL для ваших ресурсов. Что-то вроде управления версиями.

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

Аналогичный метод заключается в добавлении параметра версии в строку URL, которая представляет собой случайную строку/номер или номер версии, и предназначается только для измененных файлов.

Например, если вы изменили CSS своих сайтов, и он выглядит странно, пока вы не выполните принудительное обновление, просто добавьте ?ver=1.1 к импорту CSS в начале файла. Это для браузера другой файл, но вам нужно только изменить импорт, а не фактическое расположение или имя файла.

<link href="assets/css/style.css" rel="stylesheet" type="text/css" />

<link href="assets/css/style.css?ver=1.1" rel="stylesheet" type="text/css" />

Отлично работает и для файлов javascript.

У меня твоя проблема .

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

Вы не можете заставить браузеры очистить кеш.

Кажется, ваш файл .html перезагружается раньше, поскольку срок его действия истекает через 10 дней. Вам нужно обновить файл .html и переместить все файлы в новую папку, такую ​​как version-2/ , или добавить идентификатор версии к каждому файлу, например mypicture-2.jpg . Затем вы ссылаетесь на эти новые файлы в вашем .html файле, и браузер загружает их снова, потому что местоположение изменилось.

Вы можете сказать браузеру никогда не кэшировать ваш сайт, вставив следующий код в заголовок

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

Надеюсь, это поможет.

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

У меня нет конкретного номера версии для этого файла, поэтому я просто хеширую текущую дату и время (часы и минуты) и передаю его как номер версии:

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

Самое простое - добавить файловое время к запросу. например

myfile.txt 2014-10-30-13: 12: 33

Вы можете установить "доступ плюс 1 секунда", и таким образом он будет обновляться при следующем входе пользователя на сайт. Сохраняйте настройки в течение одного месяца.

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

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

Так, например, если вы храните весь CSS и Javascript вашего сайта в одной главной папке

Затем вы можете начать ссылаться на него как "assets-XXX" в вашем html и использовать подобное правило, чтобы выкинуть весь контент активов из кэша.

Обратите внимание, что если вы все-таки это сделаете, после того, как все заработает, замените 302 на 301, и тогда сработает кеширование. Когда это 302, оно не будет кешироваться на уровне браузера, потому что это временное перенаправление. Если вы сделаете это таким образом, то вы можете увеличить время истечения по умолчанию до 30 дней для всех активов, поскольку вы можете легко выгнать вещи из кэша, просто изменив имя папки на странице входа в систему.

Это сработало для меня.

заменить на это:

Загрузите и обновите страницу. Вы получите ошибку страницы.

просто измените его обратно на:

перезагрузите и обновите страницу снова.
Я проверил это на всех своих устройствах, и это сработало.

Измените имя файла .CSS Загрузите страницу, а затем снова измените файл на оригинальное имя, которое мне подходит.

Когда браузер отображает веб-страницу, он должен загрузить логотип, CSS файл и другие ресурсы:

Что такое кэш браузера?

Кэш браузера « запоминает » ресурсы, которые браузер уже загрузил. Когда посетитель переходит на другую страницу сайта, логотип, CSS файлы и т.д. не должны загружаться снова, потому что браузер уже « запомнил » их ( сохранил ). В этом заключается причина того, почему во время первого посещения загрузка веб-страницы занимает больше времени, чем при повторных.

Как включить кэширование в браузере

  • Измените заголовки запроса ресурсов, чтобы использовать кэширование;
  • Оптимизируйте свою стратегию кэширования.

Изменение заголовков запроса

Для большинства людей единственный способ кэширования сайта htaccess заключается в том, чтобы добавить код в файл .htaccess на веб-сервере.

Файл .htaccess контролирует многие важные настройки для вашего сайта.

Кэширование браузера через файл .htaccess

Сохраните файл .htaccess , а затем обновите веб-страницу.

Как установить время кэширования для различных типов файлов

В приведенном выше коде заданы промежутки времени. Например, 1 year ( 1 год ) или 1 month ( 1 месяц ). Они связаны с типами файлов. Приведенный выше код устанавливает, что .jpg файлы ( изображения ) следует кэшировать в течение года.

Метод альтернативного кэширования для .htaccess

Возможно, что метод Expires не сработает на вашем сервере, в этом случае вы возможно захотите попробовать использовать Cache-Control .

Cache-Control

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

Пример использования в файле .htaccess :

Приведенный выше код устанавливает заголовок Cache-Control в зависимости от типа файла.

Как работает Cache-Control

Рассмотрим упомянутую выше строку кода кэширования в браузере htaccess :

В упомянутой выше строке установлены фактические заголовки и значения:

Эта строка кэширования через htaccess закрывает оператор и заканчивает блок кода.

Общая проблема кэширования

Цифровой отпечаток URL

Методы кэширования

При кэшировании файлов htaccess необходимо указать один заголовок из пары Expires или Cache-Control max-age, а также один из заголовков Last-Modified или ETag для всех кэшируемых ресурсов. Использовать и Expires, и Cache-Control: max-age излишне, как и Last-Modified и ETag одновременно.

для моего сайта у меня есть следующие правила htaccess:

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

вы можете заставить браузеры кэшировать что-то, но

вы не можете заставить браузеры очистить свой кэш.

таким образом, единственный (AMAIK) способ-использовать новый URL для ваших ресурсов. Что-то вроде версии.

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

аналогичный метод состоит в том, чтобы просто добавить параметр версии в строку URL, которая является случайной строкой / номером или номером версии, и нацелить только измененные файлы.

например, если вы измените свои сайты CSS, и он выглядит шатким, пока вы не сделаете обновление силы, просто добавьте ?ver=1.1 к импорту CSS в начале файла. Это для браузера другой файл, но вам нужно только изменить импорт, а не фактическое местоположение или имя файла.

<link href="assets/css/style.css" rel="stylesheet" type="text/css" />

<link href="assets/css/style.css?ver=1.1" rel="stylesheet" type="text/css" />

отлично работает и для файлов javascript.

у меня есть твоя проблема.

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

вы не можете заставить браузеры очистить кэш.

ваш .html-файл, похоже, будет повторно загружен раньше, поскольку он истекает через 10 дней. Что вам нужно сделать, это обновить .HTML-файл и переместить все файлы в новую папку, например version-2/ или добавьте идентификатор версии к каждому файлу, например mypicture-2.jpg . Затем вы ссылаетесь на эти новые файлы в своем .html-файл и браузер будут загружать их снова, потому что местоположение изменилось.

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

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

надеюсь, что это помогает.

вы можете установить "доступ плюс 1 секунд" , и таким образом он будет обновляться при следующем входе пользователя на сайт. Оставьте настройку на один месяц.

самое прямое-добавить filetime в запрос. например!--1-->

управление версиями по дате.

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

У меня нет определенного номера версии для этого файла, поэтому Я просто хэш-текущую дату и время (час и минуту) и передать его как номер версии:

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

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

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

так, например, если вы храните весь CSS и JavaScript вашего сайта в основных папка

тогда вы можете начать ссылаться на него как" assets-XXX " в своем html и использовать правило, подобное этому, чтобы выгнать все содержимое активов из кэша.

обратите внимание, что если вы пойдете с этим, после того, как он будет работать, измените 302 на 301, а затем кэширование начнется. Когда это 302, он не будет кэшировать на уровне браузера, потому что это временное перенаправление. Если вы сделаете это таким образом, вы можете увеличить срок действия по умолчанию до 30 дней для всех активов, так как вы можете легко выбить вещи из кэша, просто изменив имя папки на странице входа в систему.

изменить имя .файл CSS Загрузите страницу, а затем снова измените файл на исходное имя, которое он работает для меня.

Для моего сайта у меня есть следующие правила htaccess:

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

Вы можете заставить браузеры что-то кэшировать, но

Вы не можете заставить браузеры очистить свой кеш.

Таким образом, единственный (AMAIK) способ - использовать новый URL для своих ресурсов. Что-то вроде управления версиями.

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

Аналогичный метод заключается в добавлении параметра версии в строку URL, которая представляет собой случайную строку /номер или номер версии, и нацеливается только на измененные файлы.

Например, если вы меняете CSS своих сайтов и он выглядит странно, пока вы не выполните принудительное обновление, просто добавьте ?ver=1.1 в импорт CSS в начале файла. Это для браузера другой файл, но вам нужно только изменить импорт, а не фактическое местоположение или имя файла.

<link href="assets/css/style.css" rel="stylesheet" type="text/css" />

<link href="assets/css/style.css?ver=1.1" rel="stylesheet" type="text/css" />

Прекрасно работает и с файлами javascript.

Я понял твою проблему .

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

Вы не можете заставить браузеры очищать кеш.

Ваш файл .html, кажется, перезагружается раньше, поскольку срок его действия истекает через 10 дней. Что вам нужно сделать, это обновить ваш HTML-файл и переместить все ваши файлы в новую папку, например version-2/ или добавить идентификатор версии к каждому файлу, такому как mypicture-2.jpg . Затем вы ссылаетесь на эти новые файлы в своем .html-файле, и браузер загружает их снова, поскольку местоположение изменилось.

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

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

Надеюсь, это поможет.

Вы можете установить «доступ плюс 1 секунда», и он будет обновляться при следующем входе пользователя на сайт. Сохраняйте настройки в течение одного месяца.

Самое простое - добавить время запроса к файлу. например,

myfile.txt 2014-10-30-13: 12: 33

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

У меня нет конкретного номера версии для этого файла, поэтому я просто хеширую текущую дату и время (часы и минуты) и передаю его как номер версии:

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

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

Конечно, чем выше в структуре папок вы применяете этот тип подхода, чем больше вы выбрасываете вещи из кеша простым изменением.

Например, если вы храните весь css и javascript вашего сайта в одной главной папке

Затем вы можете начать ссылаться на него как «assets-XXX» в своем html и использовать подобное правило, чтобы выкинуть весь контент активов из кэша.

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

Измените имя файла .CSS Загрузите страницу, а затем измените файл снова на оригинальное имя, это работает для меня

Читайте также: