Как обновить кэш в браузерах пользователей при изменении стилей?
Но сам процесс обновления сильно удручает. К примеру, я устанавливаю новую версию шаблона 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)); ?>
к успеху не приводит. Стили просто пропадают со страницы.
Пока просто принудительно меняю имена файлов и пути к ним.
Но может кто-нибудь знает более цивилизованные методы борьбы с кэшем в браузерах пользователей?
Как вариант.
Я именно так и делал. Этот вариант не работает. То есть файл tseso.css?134454657 нот фаунд.
Пробовал отключать — у пользователей все равно ад и израиль.А кеширование у вас включено?
Дело в кэше пользовательских браузеров.
Может помочь очистка кеш dns, cmd — ipconfig /flushdns
Знаете, как произвести очистку кэша из скрипта php или из яваскрипта?Может помочь очистка кеш dns, cmd — ipconfig /flushdns
Во-первых страница не найдена. Во-вторых пробовал. Это не работает. Кэш уже у юзера в браузере и ждать его обновления 20 дней.Запретить кэширование страницы с помощью PHP
---------------------------------------------------------------------------------------
Друзья, если вы думаете, что меня в гугле забанили, то таки нет. Конечно все способы, которые можно найти в интернете, я перепробовал за день.
Реально работающий метод — переименовать файл стилей и переименовать путь. Но это очень кропотливая работа с изменением файлов шаблона.
Было бы волшебно, если бы работал метод style.css?.time(), но он не работает.
Уточню вопрос:
Как сделать, чтобы в INSTANTCMS2 работали стили вида style.css?123456789?
А использовать time() не советую, так вы отключаете кэширование сайта, клиенту это может не понравится
<?php $this->addCSS($this->getTplFilePath('css/styles.css', false) . '?v=290'); ?> <?php $this->addJS($this->getTplFilePath('js/jsfile.js', false) . '?v=290'); ?>
Ну вот сейчас обновил форум. Стили, конечно, съехали.
И не могу найти, где в шаблоне форума подключается файл /templates/default/controllers/forum/styles.css
Поэтому объявлять его отдельно в файлах шаблона нет необходимости. Сам файл тянется отсюда github.com/instantsoft/icms2/blob/master/system/core/template.php#L1258
Попытка сделать так
return $this->getTplFilePath('controllers/'.$controller_name.'/'.$subfolder.'styles.css?v=424', false);
Resource interpreted as Stylesheet but transferred with MIME type text/html:
Всё верно, так как я вам показывал уже как надо, а вы продолжаете настаивать на своём .приводит к слетанию стилей
Делайте так:
return $this->getTplFilePath('controllers/'.$controller_name.'/'.$subfolder.'styles.css', false).'?v=424';