Вопрос или проблема
У меня проблема с тем, что мой сайт WordPress не обновляется после внесения изменений в его код:
Я использую phpStorm с авто-сохранением и запускаю сайт на WAMP на локальном компьютере. Поэтому сразу после того, как я пишу новый код, файл, в котором я его пишу, должен обновляться, а сайт — быстро после этого.
Однако сайт не обновляется.
Я не использую никакие плагины кэширования, и в своем браузере Chrome отключил кэширование.
Кроме того, он обновляется, но только после того, как я вношу изменения на сайте – например, отключаю и затем снова включаю плагин – чтобы он мог сохранить новый кэш, но по какой-то причине он не делает это автоматически и продолжает использовать старый кэш, когда я не вношу изменений через панель управления.
Почему это происходит и как я могу это исправить?
Это связано с заголовком истечения срока действия. Попробуйте добавить время менее 180 секунд
ExpiresByType text/html “access plus 180 seconds”
либо на сервере, либо в htaccess.
Ответ или решение
Проблема, с которой вы сталкиваетесь, связана с кэшированием, которое может происходить на нескольких уровнях, включая браузер, сервер и, возможно, даже настройки вашей локальной среды разработки. Ниже перечислены шаги, которые помогут вам устранить проблему с обновлением вашего сайта WordPress.
1. Отключение кэширования на уровне браузера
Вы уже указали, что отключили кэширование в Chrome, но убедитесь, что вы сделали это правильно:
- Откройте инструменты разработчика (F12 или Ctrl + Shift + I).
- Перейдите на вкладку "Сеть" (Network).
- Убедитесь, что установлен флажок "Disable cache" (Отключить кэш), прежде чем обновлять страницу.
2. Проверка кэширования на уровне сервера
Поскольку вы используете WAMP, проверьте настройки Apache или Nginx. Возможно, у вас есть конфигурации, которые устанавливают заголовки кэширования:
- Откройте файл конфигурации Apache (httpd.conf или .htaccess).
- Добавьте следующий код, чтобы установить короткий срок жизни кэша для HTML:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/html "access plus 180 seconds"
</IfModule>
Это обеспечит обновление кэша каждые 180 секунд.
3. Отключение кэширования PHP
Убедитесь, что у вас не включен какой-либо механизм кэширования PHP, например, OPcache. Если он включен, вам нужно сбросить кэш, чтобы изменения сразу отобразились. Для этого вы можете использовать следующий код:
if (function_exists('opcache_reset')) {
opcache_reset();
}
4. Очистка кэша WordPress
Хотя вы не используете кэш-плагины, некоторые темы или плагины могут содержать встроенные механизмы кэширования. Попробуйте:
- Нажать на «Обновить» в консоли администрирования WordPress.
- Отключить все плагины и затем включить их по одному, чтобы проверить, не вызывает ли какой-либо из них проблемы с кэшированием.
5. Проверьте файл hosts
Иногда при локальной разработке конфигурация файла hosts может вызывать проблемы с обновлением. Убедитесь, что ваш локальный сайт корректно настроен.
6. Отключение CDN
Если вы используете CDN (Content Delivery Network), временно отключите его и проверьте, поможет ли это в решении вашей проблемы.
Заключение
Если после выполнения всех этих шагов проблема сохраняется, возможно, стоит проверить настройки вашего WAMP-сервера на наличие каких-либо конфигурационных нюансов, которые могли бы влиять на кэширование. Кроме того, рассмотрите возможность использования других инструментов для локальной разработки, таких как Local by Flywheel или Laragon, которые могут устранить некоторые проблемы, связанные с конфигурацией.