CSS не обновляется в браузере при внесении изменений

23 июл. 2013 г., 16:08:08
Просмотры: 101K
Голосов: 25

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

5
Комментарии

У вас установлен плагин кэширования? Возможно, ваши CSS-файлы закэшированы на сервере.

Pat J Pat J
23 июл. 2013 г. 16:09:59

Кажется, у меня нет плагина кэширования.

David Tunnell David Tunnell
23 июл. 2013 г. 16:12:24

Работает ли это, если не использовать WordPress? Например, файл с названием test.html и связанный с ним файл .css?

Pat J Pat J
23 июл. 2013 г. 18:02:41

Если какой-либо из ответов помог вам решить проблему, пожалуйста, не забудьте принять его!

mrwweb mrwweb
27 авг. 2014 г. 02:25:03

Краткий ответ: Редактируйте Version в файле style.css вашей темы каждый раз, когда вносите изменения, и перезагружайте страницу.

Yergalem Yergalem
6 нояб. 2023 г. 18:19:46
Все ответы на вопрос 12
1
22

Добавьте случайный номер версии в конце подключаемого 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)?>">

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

23 июл. 2013 г. 19:11:15
Комментарии

В каком файле содержатся эти функции, чтобы мы могли внести правки?

Sam Sam
4 окт. 2021 г. 22:37:08
2
10

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

20 сент. 2014 г. 15:48:29
Комментарии

CloudFlare считает, что если есть ?ver=, то файл нельзя обновить.

Artem P Artem P
20 апр. 2016 г. 13:40:20

Ты говоришь, что каждый раз, когда я вношу изменения в CSS или JavaScript, мне нужно очищать кэш Cloudfare? Что на самом деле делает этот режим разработки? Спасибо.

Tanvir Tanvir
3 июл. 2017 г. 17:31:35
1

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

Переопределите CSS, который вы хотите изменить, в разделе Темы > Настроить > Пользовательский CSS в админ-панели.

В итоге CSS обновится. После этого вы можете снова удалить его.

2 мар. 2021 г. 04:42:47
Комментарии

Это, безусловно, самый чистый вариант, если вам нужно внести не слишком много изменений.

Alexis Wilke Alexis Wilke
25 янв. 2022 г. 20:05:21
2

Пожалуйста, измените версию в начале файла style.css (расположение ..wp-content\themes\theme_name\style.css) на более новую.

/*
Theme Name: SF TEST
Version: 1.0.1
*/

Например, измените с 1.0 на 1.1 или 1.0.1.

Также измените версию в файле function.php для этого CSS-файла

wp_enqueue_style('style', get_template_directory_uri() . "/assets/css/style.css", array(), '1.0', 'all');

Здесь измените '1.0' на более новую версию, например '1.1'

8 сент. 2021 г. 07:40:24
Комментарии

Можете привести пример, как и где изменить это в файле function.php?

Sam Sam
4 окт. 2021 г. 22:49:50

wp_enqueue_style('style', get_template_directory_uri() . "/assets/css/style.css", array(), '1.0', 'all'); здесь измените 1.0 на более новую версию, например 1.1

SF007 SF007
28 окт. 2021 г. 12:48:18
0

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

23 июл. 2013 г. 18:49:24
0

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

9 нояб. 2018 г. 13:35:17
0

Хочу обратить ваше внимание — обязательно учитывайте наличие установленных плагинов кеширования. Например, WP Fastest Cache может вызывать эту проблему, если вы не зайдёте в админку WordPress и не нажмёте "Очистить кеш → Удалить кеш и минифицированные CSS/JS" в верхнем меню.

9 июн. 2019 г. 00:47:50
0

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

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

19 сент. 2019 г. 13:27:20
3

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

wp_enqueue_style('mypluginstyle',  plugins_url('/assets/mystyle.css', __FILE__), array(), rand(111,9999) );
4 июл. 2021 г. 10:36:10
Комментарии

Это то же самое, что и принятый ответ, верно?

Rup Rup
4 июл. 2021 г. 16:39:17

@Rup да, пожалуйста, я не рассмотрел пример должным образом

Odonga Brian Odonga Brian
5 июл. 2021 г. 19:01:57

И так же, как в принятом ответе, вы не указываете, какой файл нужно редактировать...

Alexis Wilke Alexis Wilke
25 янв. 2022 г. 19:58:44
0

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

При добавлении в очередь (enqueue) используйте PHP-функцию time(), чтобы получить текущее время и использовать его в качестве версии. Ваш вызов будет выглядеть примерно так:

wp_enqueue_style( 'my-custom-style', get_template_directory_uri() . '/style.css', array(), time() );

А если вы загружаете таблицу стилей через HTML, ваш код будет выглядеть так:

<link rel="stylesheet" type="text/css" href="<?php echo get_template_directory_uri ?>/style.css?ver=<?php echo time() ?>">
17 дек. 2021 г. 17:14:25
0

Не уверен, почему никто не опубликовал это решение. Вы получаете Unix-временную метку времени изменения файла - поэтому, если вы не вносили изменений, браузер / CDN-кэш может быть сохранен.

wp_enqueue_style(
    'style_name', // Название таблицы стилей.
    get_stylesheet_directory_uri() . '/style.css', // Полный URL таблицы стилей.
    array(), // Зависимости.
    filemtime( get_stylesheet_directory() . '/style.css' ) // Номер версии.
);

Важное отличие здесь в том, что вы вызываете URI для источника - но расположение папки для времени изменения файла.

25 окт. 2022 г. 15:52:52
0
-1

Это находится в настройках конфиденциальности используемого вами браузера. Просто отключите раздел с названием:

Предварительная загрузка страниц для ускоренного просмотра и поиска Использует cookies для запоминания ваших предпочтений, даже если вы не посещаете эти страницы

19 мая 2020 г. 16:13:49