Js файл не обновляется

Обновлено: 05.07.2024

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

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

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

насколько я знаю, общим решением является добавление ?<version> к src-ссылке скрипта.

Я предполагаю, что на данный момент нет лучшего способа, чем найти-заменить, чтобы увеличить эти "номера версий" во всех тегах скрипта?

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

Это будет выглядеть примерно так:

конечно, всегда есть лучшие решения как этот.

для бета-версии, если вы хотите заставить пользователя всегда получать последнюю версию, вы бы использовали:

Google Page-Speed: не включайте строку запроса в URL для статических ресурсов. Большинство прокси, особенно Squid до версии 3.0, не кэшируют ресурсы с помощью"?"в их URL, даже если в ответе присутствует заголовок Cache-control: public. Чтобы включить кэширование прокси для этих ресурсов, удалите строки запроса из ссылок на статические ресурсы и вместо этого Закодируйте параметры в имена файлов.

этот ответ опоздал всего на 6 лет, но я не вижу этого ответа во многих местах. В HTML5 ввела Кэш Приложения, который используется для решения этой проблемы. Я обнаружил, что новый серверный код, который я писал, разрушал старый javascript, хранящийся в браузерах людей, поэтому я хотел найти способ истечь их javascript. Используйте файл манифеста, который выглядит следующим образом:

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

Как насчет добавления файла в качестве параметра нагрузки?

поэтому каждый раз, когда вы обновляете файл, параметр "filever" изменяется.

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

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

так вместо stuff.js?123 , Я stuff_123.js

Я mod_redirect (Я думаю) в apache to have stuff_*.js нужно stuff.js

до

после (перезагрузка)

добавление DateTime.Сейчас.Клещи работают очень хорошо.

JS или Css файлы, включенные таким образом:

глобальные.JsPostfix и глобальный.CssPostfix рассчитывается следующим образом в Global.асакс:

Если вы создаете страницу, которая ссылается на файлы JS, простое решение добавляет метку времени последнего изменения файла к сгенерированным ссылкам.

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

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

вот как я это сделал:

по умолчанию $.getScript () устанавливает для параметра кэша значение false. Это добавляет параметр запроса с отметкой времени к URL-адресу запроса, чтобы убедиться, что браузер загружает сценарий каждый раз, когда он запрашивается.

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

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

ссылка сценария для

объяснение:

пользователь прикрепил скрипт, предоставленный им на своем веб-сайте, и мы проверили наличие уникального токена, прикрепленного к скрипту, существует или нет с помощью селектора jQuery, а если нет, то загрузите его динамически с новым токеном (или версией)

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

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

использовать версию GET переменная для предотвращения кэширования браузера.

добавление ?v=AUTO_INCREMENT_VERSION до конца вашего url предотвращает кэширование браузера-избегая любых и всех кэшированных сценариев.

мой коллега только что нашел ссылку на этот метод сразу после того, как я опубликовал (в ссылке на css) в http://www.stefanhayden.com/blog/2006/04/03/css-caching-hack/. Приятно видеть, что другие используют его, и он, похоже, работает. Я предполагаю, что на данный момент нет лучшего способа, чем найти-заменить, чтобы увеличить эти "номера версий" во всех тегах скрипта?

хотя это специфичный фреймворк, Django 1.4 имеет этот functionailty который работает аналогично ссылке на сайт "greenfelt" в ответ выше

на PHP:

на HTML-код:

как работает:

в HTML напишите filepath и имя, как вы делаете, но только в функции. PHP получает filetime файла и возвращает filepath+name+"?"+time последние изменения

перебор кэша ASP.NET Core через tag helper обработает это для вас и позволит вашему браузеру хранить кэшированные скрипты/css до тех пор, пока файл не изменится. Просто добавьте тег helper asp-append-version= "true" в свой скрипт (js) или ссылку (css):

Дэйв Пакетт имеет хороший пример и объяснение перебора кэша здесь (внизу страницы) Кэш Перебора

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

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

наиболее распространенные решение добавьте метку или номер версии в имя файла. Это немного больше работы, потому что ваш код должен быть изменен, чтобы запросить нужные файлы, но это означает, что, например, версию 7 snazzy_javascript_file.js (т. е. snazzy_javascript_file_7.js ) кэшируется в браузере до выпуска версии 8, а затем ваш код изменяется на fetch snazzy_javascript_file_8.js вместо.

простое решение? Не позволяйте кэш браузера вообще. Добавлять текущее время (в МС) в качестве запроса.

(вы все еще находитесь в бета-версии, поэтому вы можете обоснованно не оптимизировать производительность. Но YMMV здесь.)

преимущества использования file.js?V=1 на fileV1.js это то, что вам не нужно хранить несколько версий файлов JavaScript на сервере.

беда, которую я вижу с file.js?V=1 возможно, у вас есть зависимый код в другом файле JavaScript, который ломается при использовании новой версии утилит библиотеки.

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

один простой способ. Редактировать htaccess файл

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

поставщика.a7561fb0e9a071baadb9.js
главный.b746e3eb72875af2caa9.js

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

У меня есть внешний файл JavaScript, и независимо от того, находится ли он в FireFox или Chrome, очищены ли все данные просмотра, он будет обновляться NOT, несмотря ни на что. Я думаю, что что- то произошло, когда я сделал резервную копию своего файла, который я просто добавил "_thedate" в конец имени. Затем сохраните как обратно к исходному имени.

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

Кто-нибудь знает решение этой проблемы?

Я попробовал несколько способов очистить свои файлы cookie на localhost . Что бы я ни делал, я не могу удалить их в Chrome и Firefox в обычном режиме, но он отлично работает в режимах инкогнито Chrome и приватного просмотра Firefox. Вот мой код: $name = 'keepsignin'; if.

Вы уверены, что ссылаетесь на один и тот же файл, а затем редактируете его?

В некоторых браузерах вы можете использовать CTRL F5 для принудительного обновления (в PC). На Mac это Cmd Shift R

Firebug также имеет вкладку net с "Disable браузером Cache".

Но здесь я хочу предупредить: даже если вы можете жестко обновить, откуда вы знаете, что ваши клиенты получают последнюю версию? Поэтому вам нужно проверить, а не просто убедиться, что вы и ваш менеджер программы можете сделать жесткое обновление и просто пойти домой и получить зарплату в следующем месяце. Если вы хотите выполнить работу, которая изменит мир к лучшему или оставит мир немного лучше, чем вы его нашли, вам нужно больше исследовать, чтобы убедиться, что это работает и для ваших клиентов (или же иногда клиент может позвонить в службу технической поддержки, и служба технической поддержки может прочитать сценарий "clear из файлов cookie, и это будет work",, что иногда случается со мной). Некоторые методы в нижней части этого поста могут гарантировать, что клиенты получат последнюю версию.

Обновление 2020:

Если вы используете Chrome и DevTools открыт, вы можете нажать и удерживать значок обновления перед адресной строкой, появится окно, и вы можете выбрать "Hard Reload" или даже "Empty Кэш и жесткий Reload":

hard reload button

Обновление 2017:

Если вы используете отладчик Google Chrome, это то же самое, вы можете перейти в раздел Сеть и убедиться, что в настройках панели отладчика установлен флажок "Disable кэш (пока открыт DevTools)".

Кроме того, когда вы связываете файл JavaScript, используйте

или v=2 и так далее, когда вы определенно хотите обновить файл. Или вы можете перейти к консоли и сделать Date.now() , а затем получить timestamp, например 1491313943549 , и использовать

Некоторые строительные инструменты сделают это автоматически для вас или могут быть настроены для этого, что делает его чем-то вроде:

что, по сути, приведет к разрыву кэша.

Обратите внимание , что при использовании v=2 , t=1491313943549 или main.742a4952.js у вас также есть преимущество в том, что для ваших пользователей они определенно получат более новую версию.

Как насчет добавления"? 2" к тегу?

Сервер должен вернуть тот же файл с"? 2 " или без него, но браузер должен увидеть его как другой файл и повторно загрузить. Вы можете просто изменить эту строку запроса при каждом изменении файла.

Когда я добавляю ссылку в проект Visual Studio 2010 через NuGet для Specflow 1.9, я не могу добавить никаких функций, что бы я ни делал. Я перезапустил VS, перезапустил PC, создал новые проекты и т. д. Ничто из того, что я делаю, не позволяет мне на самом деле использовать SpecFlow. I.e. когда я.

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

Решение, которое я использую, таково. Использование firefox
1. использование веб-разработчика --> Веб-консоль
2. откройте файл java-script на новой вкладке.
3. Обновите новую вкладку, и вы увидите свой новый код.
4. Обновите исходную страницу
5. Вы должны увидеть свои изменения.

Немного поздно на вечеринку, но если вы поместите это в свой html, это не позволит вашему сайту обновлять кэш. Загрузка веб-сайта занимает немного больше времени, но для целей отладки мне это нравится. Взято из этого ответа: Как программно очистить кэш браузера?

Временно переименуйте свой файл js во что-то другое. Это единственное, что сработало для меня.

Лучший способ обойти кэш браузера-добавить случайное число к пути к файлу js.

Пример в псевдокоде:

Это гарантирует, что ваш браузер всегда будет перезагружать файл, потому что он думает, что это другой файл из-за случайного числа в url.

Сервер всегда будет возвращать файл и игнорировать то, что следует за"?".

Вы 100% уверены, что ваш браузер даже загружает скрипт? Перейдите на свою страницу в Firefox и используйте консоль в Firebug, чтобы проверить, был ли загружен скрипт или нет.

Некоторое время у меня была одна и та же проблема, и мне удалось ее решить. И мой случай был потому, что у меня есть 2 javascript с тем же именем функции.

1.Clear кэш браузера в инструментах разработчика браузера 2.Under вкладка сеть-выберите опцию Отключить кэш 3.Restarted браузер 4.Force reload JS file command+shift+R в mac Убедитесь, что новая война правильно развернута на стороне сервера

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

В Cloudflare вы можете использовать режим dev для отключения прокси-сервера.

Не забудьте проверить все ошибки в компиляции webpack. Иногда application.js в app/javascript/packs/ не перезагружается из-за ошибки компиляции webpack.

Похожие вопросы:

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

Должно быть, я делаю что-то очень глупое. Что бы я ни пробовал, я всегда получаю пустой выбор. Это код: <select> <option disabled=>jknjk</option> <option selected.

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

Я попробовал несколько способов очистить свои файлы cookie на localhost . Что бы я ни делал, я не могу удалить их в Chrome и Firefox в обычном режиме, но он отлично работает в режимах инкогнито.

Когда я добавляю ссылку в проект Visual Studio 2010 через NuGet для Specflow 1.9, я не могу добавить никаких функций, что бы я ни делал. Я перезапустил VS, перезапустил PC, создал новые проекты и т.

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

Я пытаюсь стилизовать цвет фона checkbox, но он не изменится, что бы я ни делал. Я использую firefox 29 последней версии. Есть ли какие-то изменения правил в css или могут быть в браузере? CSS .

Я использую этот код для включения аудиофайла на свой сайт, но автозапуск всегда активен, что бы я ни делал. <embed autostart=false type=audio/mpeg loop=true height=35.

Решение проблемы, когда браузер не обновляется вовремя после изменения файла js в проекте

Теперь опубликуйте решения в IE, Firefox и Chrome для справки:

1. Firefox (браузер Firefox) для решения проблемы

Первый шаг - набрать в браузере: about: config и нажать Enter.

Второй шаг - найти содержимое списка ниже в отображаемом содержимом, дважды щелкните содержимое, обведенное на рисунке ниже.


В появившемся диалоговом окне измените 3 на 1


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

Откройте браузер IE, одновременно нажмите и удерживайте ALT + X, нажмите на появившейся странице параметр Интернет, введите В интерфейсе настройки параметров Интернета нажмите кнопку, обведенную на рисунке ниже.


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


Затем нажимайте OK один за другим, и тогда браузер IE сможет своевременно обновить измененный файл js в проекте.

3. хром (Google Chrome)

Этот метод основан на комментариях ниже, и личность не проверена.

Пока F12 открывает инструменты разработчика, нажмите кнопку с шестеренкой «Настройки» в правом нижнем углу, чтобы войти в следующий интерфейс, и выберите «Отключить кеш» (пока DevTools открыт) на вкладке «Общие». В следующий раз, пока вы откроете инструменты разработчика, кеш не будет сохранен, поэтому будет загружена последняя версия js.

4. Я только что вспомнил

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

4.1 Для пользователей eclipse:

Друзья, которые используют eclipse, обратите внимание, что, поскольку местоположение по умолчанию для развертывания проектов в tomcat eclipse находится не в каталоге webapp в tomcat, а в пути установки eclipse, например, я использую eclipse luna и проект, который я развернул в tomcat Расположение по умолчанию: .metadata \ .plugins \ org.eclipse.wst.server.core \ tmp0 \ wtpwebapps, если вы хотите найти этот путь, вам нужно перейти в свою рабочую область, чтобы найти папку .metadata, а затем Затем следуйте указанному выше пути, чтобы найти развернутый проект, вручную удалить его и повторно развернуть проект в eclipse, чтобы устранить проблему, связанную с невозможностью обновления браузера.

4.1 Для пользователей Myeclipse:

Путь к проекту, развернутому в myeclipse, находится в папке webapp в пути установки tomcat. Найдите свой проект в этой папке webapp, удалите его вручную, а затем повторно разверните проект в myeclipse.

5. Другие методы

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

Сначала я подумал, что значение ver = 1 сзади нужно часто изменять, чтобы предотвратить его чтение.Теперь я обнаружил, что js-файл, который был изменен вовремя, можно обновлять без изменения этого числа.

Изменения WordPress не отображаются

Изучение

Изменения WordPress не отображаются

Возникла проблема с изменениями WordPress, которые не отображаются на вашем сайте? Это широко распространённая проблема для пользователей WordPress. Почти во всех случаях проблема возникает из-за проблем с кешированием либо в вашем собственном веб-браузере, либо в кеше вашего сайта WordPress, либо в кеше вашей сети доставки контента (CDN).

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

Сколько времени требуется WordPress, чтобы обновить изменения?

Вообще говоря, ваш сайт WordPress должен обновиться сразу после того, как вы нажмёте кнопку сохранения. То есть вы должны иметь возможность нажать кнопку сохранения, открыть соответствующую страницу и сразу увидеть эти изменения. Что ещё более важно, то же самое должно относиться и к посетителям вашего сайта.

Вот что должно произойти.

Но поскольку вы читаете этот пост, вы, вероятно, поняли, что не всегда всё идёт по плану.

Почему мой сайт WordPress не обновляется?

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

Существуют различные типы кеширования, которые могут мешать вам видеть изменения на вашем сайте WordPress:

  1. Кэширование браузера- сохраняет определённые статические файлы на локальных компьютерах посетителей в кеше веб-браузера.
  2. Кэширование страниц- сохраняет статическую HTML-версию вашего сайта, а не использует PHP для её генерации «на лету» при каждом посещении.
  3. А также кэширование CDN- ускоряет глобальную загрузку за счёт кеширования статического контента вашего сайта в сети серверов по всему миру.

Теперь вам не нужно разбираться в механизмах кэширования. Основная проблема в том, что более ранняя версия вашего сайта всё ещё сохраняется в «кеше».

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

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

Помимо проблем с кешированием, ещё одна причина, по которой вы можете не видеть изменений на своём сайте WordPress, может быть связана с разрешениями на вашем сайте. Это особенно часто бывает, если вы создаёте динамические сайты, где разные пользователи видят разный контент, например, на сайте членства.

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

Разобравшись с этим, давайте разберёмся, как решить проблему.

Мы разделим эти шаги по устранению неполадок на четыре основных раздела:

Для первых трёх мы рекомендуем проработать их сверху вниз. То есть начните с очистки кеша браузера, а затем переходите к другим по порядку.

Кеширование браузера работает путём сохранения определённых ресурсов сайта в кеше браузера вашего компьютера. Это позволяет избежать многократной загрузки этих ресурсов прямо с сервера вашего сайта WordPress. Чтобы решить эту проблему, вы можете заставить свой браузер загружать самые свежие версии всех файлов с вашего сервера, а не загружать их из кеша.

Вот несколько способов добиться этого.

Аппаратное обновление вашего веб-браузера

Самое простое решение для устранения проблем с кешированием в браузере на одной странице — это жёстко обновить браузер.

При принудительном обновлении ваш браузер пропускает кэш и загружает все ресурсы веб-сервера.

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

Очистите кеш браузера

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

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

Используйте методы «очистки кеша»

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

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

Например, предположим, что логотип вашего сайта — logo.jpg. Если вы обновите свой логотип и загрузите новый файл с таким же именем ( logo.jpg ), это изменение может не отобразиться сразу, потому что браузеры людей по-прежнему будут загружать исходный файл logo.jpg из своего кеша.

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

Другая тактика очистки кеша включает изменение пути к файлу или добавление строк запроса в дополнение к изменению имени файла. Несколько примеров:

Хотя существуют разные типы кеширования WordPress, наиболее вероятной причиной является кеширование страниц.

Обычно ваш сервер «строит» готовый HTML-код вашего сайта с нуля для каждого посещения с использованием PHP. Затем ваш сервер отправляет готовый HTML-код браузеру посетителя для отображения вашей веб-страницы.

Чтобы ускорить процесс, кэширование страниц позволяет сохранять готовый HTML-код в кеше, устраняя необходимость для вашего сервера обрабатывать PHP и запрашивать базу данных при каждом посещении. Это означает, что если вы обновите что-то на своём сайте, это изменение не будет доступно сразу, потому что ваш сервер по-прежнему обслуживает кешированный HTML-код до того, как вы внесли это изменение.

Большинство веб-хостов и подключаемых модулей кэширования обходят это путём автоматической «очистки» кеша всякий раз, когда вы публикуете или обновляете часть контента. Однако ваше решение для кэширования может быть не настроено для этого или может просто не работать должным образом по какой-то причине.

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

Исправление здесь — очистить кеш вашего сайта вручную.

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

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

  1. Очистка кеша, если вы размещаете на Kinsta.
  2. Очистка кеша в некоторых популярных плагинах кеширования.

Как очистить кеш для клиентов Kinsta

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

Во-первых, вы можете сделать это из панели управления вашего сайта WordPress через вкладку Kinsta Cache на левой боковой панели и кнопку Очистить кеш:

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

Во-вторых, вы также можете очистить кеш своего сайта через панель управления MyKinsta. Откройте свой сайт в MyKinsta. Затем перейдите на вкладку Инструменты и нажмите кнопку Очистить кеш под Кешем сайта:

Во-вторых, вы также можете очистить кеш своего сайта через панель управления MyKinsta

Как очистить кеш в плагинах

Если вы не размещаете на Kinsta, возможно, вы используете плагин кеширования WordPress для обработки кеширования страниц.

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

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

WP супер кэш

Вы можете выбрать опцию Удалить кеш на панели инструментов WordPress или в настройках плагина:

WP супер кэш

WP Самый быстрый кеш

Чтобы удалить весь кеш, вы можете нажать кнопку «Удалить кеш» на панели инструментов WordPress.

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

  1. Откройте список постов / страниц / произвольных типов постов.
  2. Наведите указатель мыши на часть содержимого, в которой не отображаются изменения.
  3. Щёлкните ссылку Очистить кеш.

WP Самый быстрый кеш

WP Rocket

Чтобы очистить кеш всего сайта, наведите указатель мыши на опцию WP Rocket на панели инструментов WordPress и выберите Очистить кеш:

WP Rocket

Чтобы очистить отдельный фрагмент содержимого, наведите на него курсор в списке содержимого и нажмите Очистить этот кеш:

WP Rocket2

Если вы используете сеть доставки контента (CDN) для ускорения глобальной загрузки вашего сайта WordPress, это может быть ещё одной причиной, по которой изменения вашего сайта WordPress не отображаются.

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

Однако, если ваш CDN кэшировал старую версию файла изображения или таблицы стилей CSS, это может привести к тому, что изменения WordPress не отображаются. Маловероятно, что это произойдёт с вашим контентом, но это может быть обычная проблема со статическими файлами, которые вы можете размещать в CDN, такими как изображения и скрипты.

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

Как очистить кеш Kinsta CDN

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

В MyKinsta откройте область панели инструментов для сайта WordPress, на котором у вас возникли проблемы. Затем перейдите на вкладку Kinsta CDN и нажмите кнопку Очистить кеш CDN:

Как очистить кеш Kinsta CDN

Наконец, ваш сайт может работать нормально, но вы по-прежнему можете не видеть вносимые вами изменения из-за некоторых проблем с ролью / возможностями WordPress. Ваш сайт обновлён правильно, но у вашей учётной записи нет разрешения на просмотр изменений.

Это может стать ещё более сложным, если у вас есть членский сайт с несколькими разными уровнями членства.

Чтобы упростить отладку этих проблем и быстро переключаться между разными учётными записями WordPress, вы можете использовать бесплатный плагин User Switching.

Заключение

В большинстве случаев проблемы, связанные с изменениями WordPress, которые не отображаются на вашем сайте, связаны с проблемами кеширования (кеширование браузера, кеширование страниц или кеширование CDN).

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

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

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