Обновить кэш пользователям.

InstantCMS 2.X

Как обновить кэш в браузерах пользователей при изменении стилей?

#1 14 марта 2018 в 22:12
Многие из нас пытаются сделать свои сайты как-то лучше, дорабатывают внешний вид, ставят новые версии шаблонов и т.д.
Но сам процесс обновления сильно удручает. К примеру, я устанавливаю новую версию шаблона tseso от Олега Васильевича или форума от Loadырь и пользователи присылают мне скриншоты полные боли и ужаса. Я всем советую жать CTRL+F5.
Все, кто знают, как жать — жмут, но у многих телефоны и планшеты и всем всего не объяснишь. А некоторые ни на что не жалуются, а просто, скрипя зубами обзывают админа уродом недоделанным, смотрят в кривые стили, плюют в дисплей и уходят с сайта.
Весь интернет полон советами заменить путь к стилям с 'styles.css' на 'styles.css?1234567' и тому подобное. На InstantCMS2 этот метод почему-то не прокатывает.
То есть изменение
<?php $this->addMainCSS($this->getTplFilePath('css/tseso.css', false)); ?>
на
<?php $this->addMainCSS($this->getTplFilePath('css/tseso.css?123456', false)); ?>
к успеху не приводит. Стили просто пропадают со страницы.
Пока просто принудительно меняю имена файлов и пути к ним.
Но может кто-нибудь знает более цивилизованные методы борьбы с кэшем в браузерах пользователей?
#2 14 марта 2018 в 22:22
<?php $this->addMainCSS($this->getTplFilePath('css/tseso.css?'.time(), false)); ?>
Как вариант.
#3 14 марта 2018 в 22:24
@IamB,
Я именно так и делал. Этот вариант не работает. То есть файл tseso.css?134454657 нот фаунд.
#4 14 марта 2018 в 22:53

А кеширование у вас включено?

@IamB
Пробовал отключать — у пользователей все равно ад и израиль.
Дело в кэше пользовательских браузеров.
#5 14 марта 2018 в 22:57
При выключенном кеш изменения на сайте видны в обновленных опера и хром, но кеш на сайте нужен.

Может помочь очистка кеш dns, cmd — ipconfig /flushdns
#6 14 марта 2018 в 23:14

Может помочь очистка кеш dns, cmd — ipconfig /flushdns

@Elv
Знаете, как произвести очистку кэша из скрипта php или из яваскрипта?

Запретить кэширование страницы с помощью PHP

@IamB
Во-первых страница не найдена. Во-вторых пробовал. Это не работает. Кэш уже у юзера в браузере и ждать его обновления 20 дней.

---------------------------------------------------------------------------------------
Друзья, если вы думаете, что меня в гугле забанили, то таки нет. Конечно все способы, которые можно найти в интернете, я перепробовал за день.
Реально работающий метод — переименовать файл стилей и переименовать путь. Но это очень кропотливая работа с изменением файлов шаблона.
Было бы волшебно, если бы работал метод style.css?.time(), но он не работает.
Уточню вопрос:
Как сделать, чтобы в INSTANTCMS2 работали стили вида style.css?123456789?
#7 14 марта 2018 в 23:43
Нашел это
#8 14 марта 2018 в 23:45
Не работает только в функции getTplFilePath()
А использовать time() не советую, так вы отключаете кэширование сайта, клиенту это может не понравится
#9 15 марта 2018 в 06:18
Ris, делается это так
  1. <?php $this->addCSS($this->getTplFilePath('css/styles.css', false) . '?v=290'); ?>
  2. <?php $this->addJS($this->getTplFilePath('js/jsfile.js', false) . '?v=290'); ?>
где css/styles.css — путь от корня вашего (или дефолтного) шаблона, а не от корня сайта или общей папки с шаблонами.
#10 15 марта 2018 в 08:23
Loadырь,
Ну вот сейчас обновил форум. Стили, конечно, съехали.
И не могу найти, где в шаблоне форума подключается файл /templates/default/controllers/forum/styles.css
#11 15 марта 2018 в 08:45
Файл стилей контроллера сам подгружается автоматически тут github.com/instantsoft/icms2/blob/master/system/core/template.php#L1335
Поэтому объявлять его отдельно в файлах шаблона нет необходимости. Сам файл тянется отсюда github.com/instantsoft/icms2/blob/master/system/core/template.php#L1258
#12 15 марта 2018 в 09:11
Loadырь,
Попытка сделать так
  1. return $this->getTplFilePath('controllers/'.$controller_name.'/'.$subfolder.'styles.css?v=424', false);
приводит к слетанию стилей и
Resource interpreted as Stylesheet but transferred with MIME type text/html:
#13 15 марта 2018 в 09:27
Sheet real Sheet… Галка сжимать HTML стоит?
#14 15 марта 2018 в 09:54

приводит к слетанию стилей

Ris
Всё верно, так как я вам показывал уже как надо, а вы продолжаете настаивать на своём zlo.
Делайте так:
  1. return $this->getTplFilePath('controllers/'.$controller_name.'/'.$subfolder.'styles.css', false).'?v=424';
#15 15 марта 2018 в 10:16
Этот чудесный код будет в instantcms 2.9.1?
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.