Есть ли простой способ предотвратить все кеширование при тестировании появления изменений на сайте? Я использую WP Super Cache. Я могу удалить его кеш, используя предоставленную опцию, удалить кеш для моего браузера, но некоторые изменения в CSS или виджетах не обновляются. Я пробую другие обходные пути, такие как переключение браузеров или компьютеров, но должен быть более упорядоченный рабочий процесс, чтобы я мог убедиться, что я просматриваю внесенные изменения, а не какой-то ранее кэшированный формат? Каково лучшее решение для этого?
css
cache
development-strategy
cboettig
источник
источник
Ответы:
Добавьте
filemtime()
свою таблицу стилей в качестве параметра версии. Допустим, ваша таблица стилей по умолчанию вcss/default.css
иcss/default.min.css
( неstyle.css
). Когда мы регистрируем таблицу стилей вwp_loaded
( неinit
), мы можем передать версию в качестве четвертого параметра. Это будет последний измененный момент времени, поэтому он будет меняться каждый раз, когда мы меняем файл.Если вы используете Node.js и Grunt, я настоятельно рекомендую Browsersync . Он будет смотреть ваши файлы и обновлять их мгновенно, когда они меняются. Он также может синхронизировать положение прокрутки, отправку форм и многое другое в нескольких открытых браузерах. Очень круто.
источник
После поиска простого решения много раз я решил найти то, что работает!
так что ... подумав об этом, я нашел отличный способ переопределить кэширование при разработке новых веб-сайтов ... (и это легко).
Нам нужно сказать wp, что это новая версия CSS, подобная этой ...
До изменений:
После изменений:
Вот что мы добавили:
Объяснение:
Мы в основном добавляем динамический номер версии в файл CSS, что заставляет браузер загружать новый CSS каждый раз, когда мы обновляем его.
Не забудьте удалить его после завершения разработки, иначе ваше кеширование не будет работать для этого файла, и оно будет загружаться для возвращающихся пользователей снова и снова.
Этот метод работает для файлов css & js - надеюсь, это поможет;)
источник
wp_enqueue_style( 'maincss', get_template_directory_uri() . '/css/style.css', array(), time(), 'all' );
Это может показаться слишком простым, но как насчет того, чтобы просто отключить кэширование, пока вы не закончили с частью разработки своего сайта? Это более чем просто включить и выключить.
источник
Я знаю, что на этот вопрос был принят ответ, но я думаю, что этот ответ все еще слишком сложен для рассматриваемой проблемы и может фактически быть неправильным в зависимости от пользователя (без обид, хотя), поэтому я решил поделиться как я обойти кэширование, когда я делаю мой dev (не только с Wordpress).
В большинстве современных браузеров есть режим инкогнито . В этом режиме на вашем компьютере ничего не кэшируется, поэтому каждое обновление - это новая загрузка с сервера. В Internet Explorer вы нажимаете
Ctrl + Shift + P
. В Firefox и Chrome вы нажимаетеCtrl + Shift + N
.Если в вашем браузере нет режима инкогнито, вы можете принудительно перезагрузить его, нажав
Ctrl + F5
на IE илиCtrl + Shift + R
на Firefox и Chrome.Что касается вашего вопроса, касающегося файлов CSS (и, по сути, всех ваших файлов ресурсов, таких как изображения и файлы Javascript), они не кэшируются каким-либо образом WP Super Cache. Ваши настройки и / или использование этого плагина не влияют на обслуживание этих файлов. Кэширование этих файлов осуществляется вашим браузером , и именно поэтому вы выполняете полную перезагрузку.
Плагин делает то, что он оценивает, как Wordpress создает ваши HTML-файлы (через PHP) и сохраняет копию, так что в следующий раз, когда кто-то запросит тот же пост, страницу или что-то еще, он предоставит копию, и ему не придется переоценить сгенерированный PHP HTML снова и, следовательно, сэкономить некоторое вычислительное время, загружая ваши страницы намного быстрее. (Надеюсь, это понятно.)
Проблема с этим есть, если вы пощечина на метку времени на URL ваших CSS файлов через функцию PHP, которая является оценкой PHP в HTML, и это будет кэшироваться WP Super Cache. Каждый запрос к одному и тому же сообщению будет иметь одну и ту же метку времени, поскольку пользователям предоставляется копия оригинальной оценки метки времени. (Поправьте меня если я ошибаюсь.)
Правильный способ обойти кеширование WP Super Cache - установить опцию
Don't cache for known users
наtrue
странице настроек плагина.И наконец (и это личное предпочтение, так как я очень сторонник кодирования), использование инкогнито или принудительной перезагрузки не потребует добавления ненужной разметки на ваши HTML-страницы. Конечно, добавление временной метки добавляет только около 13 байт на статический файл на запрос, но, как я уже сказал, я сторонник такого рода вещей. Это все еще 13 байтов, ненужных.
источник
Гоша, много способов ответить на этот! Прежде всего, вы спросили о двух разных вещах: WP Super Cache и CSS-файлы. Они кэшируются по-разному, в разных местах, поэтому важно понять, где ваша проблема.
Если WP Super Cache, вы можете определить константу
DONOTCACHEPAGE
в вашем functions.php во время разработки, чтобы WP Super Cache ничего не кэшировал. Не забудьте удалить это при запуске!define('DONOTCACHEPAGE', true);
Каждый сайт также имеет уникальный ключ для добавления к URL-адресу для загрузки свежей версии страницы, которую, я считаю, вы можете найти на вкладке «Дополнительно».
Если разбить его на еще лучшее решение, вам следует подумать о настройке среды разработки и производственной среды, в которой в среде разработки не включен WP Super Cache (опять же, если предположить, что это ваша проблема).
Если ваша проблема связана с файлами CSS / JS, посмотрите ответ toscho и последующий комментарий m0r7if3r выше.
источник
HyperCache отключает кэширование, когда вы вошли в систему как администратор. Не уверен, что WP Super Cache обладает такой же функциональностью.
источник
Если вы используете Chrome (что я настоятельно рекомендую), откройте Inspector, щелкните значок настроек в правом нижнем углу и в разделе «Сеть» выберите «Отключить кэш».
источник
Как сказано для wp super cache, но для общего WP кеширования в
wp-config.php
Change на это:Ссылка: codex.wordpress.org
источник
Вы можете использовать этот фрагмент https://gist.github.com/jhayiwg/92bae4330aeb738a98022d7ab63ce9b1
Он будет генерировать новую версию вашей активной темы CSS и JS каждый раз, когда вы загружаете страницу
источник