WordPress плагин CSS Cache Buster — всегда актуальная версия файла стилей

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

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

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

Сегодня мне очень кстати попался плагин для WordPress под названием CSS Cache Buster. Он делает очень простую вещь — считывает дату изменения файла стилей и автоматически подставляет ее после знака вопроса. В результате чего посетителю будет всегда отдана самая последняя версия файла стилей, независимо от того, как часто он меняется.

В общем, данный плагин будет весьма полезен тем, кто часто изменяет файл стилей своего WordPress-сайта.

Комментарии (19)
  1. 1
    Annette

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

  2. 2
    JiLiZART

    Наканецто, я так долго искал эту инфу про вопросики после стиля, теперь я понял зачем это.

  3. 3
    Александр

    Ну вы даёте)) ещё плагин какойто, это делается одной строчкой:

    …ref=»style.css?»>

  4. 4
    Александр

    Почему то код не вставился:(

    ..res=»style.css?< ?=filectime('/var/www/whereisyourfile/style.css');?>«>

  5. 5

    Александр, спасибо, за вариант. Мне, однако, проще воспользоваться плагином.

  6. 6

    можно немного уточнить метод александра
    style.css?< ?php echo filectime(TEMPLATEPATH . '/style.css');?>

  7. 7

    Евгений, благодарю! Вот так гораздо проще, чем писать полный локальный путь :)

  8. 8

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

    2 Dimox
    Доработайте скриптик, делающий рассылку. Когда нет темы сообщения, да еще и не написано «от кого», многими получателями такие письма сразу удаляются, не глядя, или прибиваются спам-фильтром. Просто очень похоже на спам от «пионэров». :) Вы же хотите, чтобы Ваши сообщения читали и заходили на сайт. :)

  9. 9

    Доработайте скриптик, делающий рассылку.

    Про какую рассылку вы говорите?

  10. 10

    Заголовок статьи одного из последних сообщений:
    Блогер из Алтая Новая фишка в продажах?

    А вот как это выглядит в почте Яндекса:
    Дата: 13.09.08 16:59
    От кого: Noaddress В адресную книгу… В черный список…
    Кому: Noaddress
    Тема: (Без темы)

  11. 11

    Не понял, а причем тут я и мог блог, если написано «Блогер из Алтая»?

  12. 12

    :-) Всё это очень хорошо, но что мешает отдавать файлы с Cache-Control, в котором стоят must-revalidate, max-age=0, post-check-0 и pre-check=0? Ну и proxy-revalidate до кучи. И со знаками вопроса извращаться не надо…

    Кстати, что характерно, Ваш сервер отдаёт CSS без Last-Modified, только с Etag. Поэтому проблем с разными версиями одного и того же файла быть не должно… Если, конечно, никто не играл с параметром FileETag апача.

  13. 13

    Vladimir, а можно по-русски? :) Я вообще ничего не понял из того, что ты сказал.

    но что мешает отдавать файлы с Cache-Control

    Отсутствие соответствующих знаний, наверное, мешает.

    И со знаками вопроса извращаться не надо…

    Не вижу никакого извращения — поставил и забыл :)

  14. 14
    Mike

    Всё как всегда отлично! Попробовал, всё отлично работает! Спасибо, Dimox!

  15. 15
    Alex

    Есть также вариант с кешированием и gzip сжатием стиля при помощи php

    у меня есть файлик, на который я при помощи rewrite перенаправляю запросы для файлов с расширением .css и .js. В этом файле либо отдается сжатый файл с заголовками либо возвращается header( ‘HTTP/1.0 304 Not Modified’ );

    Один из заголовков (etag) содержит информацию об имени, размере и времени создания файла.

    По этому заголовку и определяем изменился файл или нет. Помогает очень здорово.

    Эту технику я прочитал почти год назад на одном из сайтов. Реализовал полгода назад, когда припекло. Поэтому автора не помню — но Респект ему от меня за эту фичу!

  16. 16
    Alex

    Вдогонку — вспомнил источник.
    http://phpclub.ru/talk/showthread.php?threadid=48234

    Здесь подробно расписано все.

  17. 17
    Без идей

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

  18. 18
    Alexpts

    Инфа очень актуальная, я раньше папку с темой переименовывал, чтоб у пользоватеолей обновить css. Теперь будет легче )))

  19. 19

    Спасибо за ссылку на плагин, должен пригодиться.