Странная работа кэша в Firefox
Добрый день. Столкнулся с проблемой следующего характера. Есть магазин modx+minishop2, всё обновлено до актуальных версий (minishop2 обновил сегодня).
Сайт только, что переехал с другого хостинга, по этому я не уверен, что проблема связана с обновлением минишопа. Итак суть:
Я захожу на первую страницу, добавляю товар в корзину (возле иконки появляется цифра 1), затем перехожу в корзину, там как положено 1 товар. Иду в другую категорию и добавляю ещё 1 товар, появляется цифра 2.
Затем начинаются странности, если я возвращаюсь на главную, возле корзины будет цифра 1, двойка появится только после обновления. Перейдя в корзину я вижу только 1 товар, второй появится только после обновления страницы.
Сниппеты вызываются некэшируемыми, глюк наблюдается только на Firefox, в хроме и опере проблемы нет. Возможно кто-то сталкивался с подобной проблемой?
В режиме отладки можно отключить http-кэш, так что проблема точно в кэше браузера. Вопрос, надо ли решать проблему на уровне директив сервера, в htaccess, или какими-то заголовками в head?
Сайт только, что переехал с другого хостинга, по этому я не уверен, что проблема связана с обновлением минишопа. Итак суть:
Я захожу на первую страницу, добавляю товар в корзину (возле иконки появляется цифра 1), затем перехожу в корзину, там как положено 1 товар. Иду в другую категорию и добавляю ещё 1 товар, появляется цифра 2.
Затем начинаются странности, если я возвращаюсь на главную, возле корзины будет цифра 1, двойка появится только после обновления. Перейдя в корзину я вижу только 1 товар, второй появится только после обновления страницы.
Сниппеты вызываются некэшируемыми, глюк наблюдается только на Firefox, в хроме и опере проблемы нет. Возможно кто-то сталкивался с подобной проблемой?
Поблагодарить автора
Отправить деньги
Комментарии: 4
Решено. Сервер хостера кэширует всё в усмерть. Что бы решить проблему необходимо включить в htaccess следующие директивы
<IfModule mod_headers.c>
Header append Cache-Control «no-store, no-cache, must-revalidate»
# Заголовок Expires
<IfModule mod_expires.c>
ExpiresActive On ExpiresDefault «now»
После этого сбросить кэш в браузере. Это немного замедлит сайт, но корзинна и все динамические элементы станут работать корректно.
<IfModule mod_headers.c>
Header append Cache-Control «no-store, no-cache, must-revalidate»
# Заголовок Expires
<IfModule mod_expires.c>
ExpiresActive On ExpiresDefault «now»
После этого сбросить кэш в браузере. Это немного замедлит сайт, но корзинна и все динамические элементы станут работать корректно.
Спасибо.
Помогло Ваше решение. Но всё же оно выглядит как костыль, т.к. с кэшом сайт быстрей работает и до возникновения проблемы с корзиной и избранными у меня сайт работал нормально. И не понятно с какого момента началась такая проблема с корзиной MiniShop2 и избранными в msFavorites.
Но в отличии от вашей проблемы, моя проявляла себя ещё и в Yandex.Браузере, но тут меня чёрт дернул и я почистил папку caсhe и проблемы начались во всех браузерах. Заметил что под админом и зарегистрированным пользователем всё работает нормально. Не могу найти в чём проблема (.
Помогло Ваше решение. Но всё же оно выглядит как костыль, т.к. с кэшом сайт быстрей работает и до возникновения проблемы с корзиной и избранными у меня сайт работал нормально. И не понятно с какого момента началась такая проблема с корзиной MiniShop2 и избранными в msFavorites.
Но в отличии от вашей проблемы, моя проявляла себя ещё и в Yandex.Браузере, но тут меня чёрт дернул и я почистил папку caсhe и проблемы начались во всех браузерах. Заметил что под админом и зарегистрированным пользователем всё работает нормально. Не могу найти в чём проблема (.
Я могу ошибаться, но яндекс браузер строится на мозиле. Проблемы начинаются когда ваш хостер, в попытке ускорить ваш сайт начинает кэшировать всё подряд. Возможно можно как-то заставить его не кешировать определённые элементы, но я пока хз как.
Яндекс браузер основан на Chromium, как и Opera, Edge и еще очень много разных браузеров.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.