CSS не обновляется в браузере, когда я меняю его

14

Я работаю над CSS моего сайта WordPress. Когда я делаю изменения и обновляю страницу, изменения не отражаются. Когда я очищаю историю браузера и кеширую, изменения все равно отражаются. Когда я просматриваю исходный код страницы и смотрю на файл css, он имеет старое содержимое до изменения. Как мне получить это для обновления, чтобы я мог развиваться?

Дэвид Туннелл
источник
У вас работает плагин кэширования? Ваши CSS-файлы могут быть кэшированы на сервере.
Пэт Дж
Это не появляется, у меня есть плагин кэширования.
Дэвид Туннелл
Это работает, если вы не используете WordPress? Например, файл называется test.htmlи связанный .cssфайл?
Пэт Дж
Если какой-либо из ответов помог вам решить проблему, обязательно примите его!
mrwweb

Ответы:

14

Добавьте случайный номер версии в конце файла CSS, который вы прикрепляете. Если вы используете функции wp_enqueue_style или wp_register_style , передайте случайное число (версию) rand(111,9999)в 4-й параметр. Если вы присоединяете CSS как HTML-тег, вы должны добавить « ?ver=<?php echo rand(111,999)?>» в конце имени файла. Примеры здесь

wp_register_style( 'custom-style', get_template_directory_uri() . '/css/custom-style.css', array(), rand(111,9999), 'all' );

или

<link rel="stylesheet" type="text/css" href="http://website.com/css/custom-style.css?ver=<?php echo rand(111,999)?>">

Это позволит избежать кэширования на стороне клиента и, возможно, на сервере.

Г-Н
источник
7

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

Shanan
источник
1
CloudFlare считает, что если ?ver=файл существует, его невозможно обновить.
КГ
Вы говорите, что каждый раз, когда я делаю изменения в CSS, я должен очистить кеш Cloudfare? Что на самом деле делает этот режим разработки? Thnx
Tanvir
0

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

Джефф Перселл
источник
0

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

Рамон Пуиг
источник
0

Просто хочу указать - будьте внимательны к любым установленным плагинам кэширования . Например, WP Fastest Cache может создать эту проблему, если вы не забыли войти в панель управления WP и нажать «Очистить кэш -> Удалить кэш и Minified CSS / JS» в меню навигации.

HappyHands31
источник
0

Это может быть старый. Но мне нужно поддержать кого-то, кто может искать помощи. У меня была такая же проблема, и я проверил свои плагины. Был плагин "w3 total cache", который ускорял загрузку. Это плагин кеша на стороне сервера, поэтому я его отключил. Изменения css снова видны в реальном времени. Есть много загрузочных плагинов. Так что проверьте список плагинов и отключите их, пока не закончите разработку.

Гимхана Джаясекара
источник