0 Пользователей и 1 Гость просматривают эту тему.
  • 21 Ответов
  • 859 Просмотров
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Честно сказать, уже надоело клиентам объяснять, что для того, что бы увидеть правки, которые я внес, надо почистить историю, либо открыть сайт в режиме инкогнито. Нельзя ли как-то дать браузеру знать, что бы он не тянул данные из кеша, а загрузил все по новой? Может какой-нибудь хитрый JavaScript для этого существует?

Заранее спасибо всем, кто откликнется. Достало уже до чертиков(
« Последнее редактирование: 23.07.2018, 11:17:06 от dm-krv »
*

NewUsers

  • Живу я здесь
  • 2307
  • 214 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
В общих настройках кэширование отключено?
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

lexxbry

  • Живу я здесь
  • 2387
  • 67 / 8
ctrl+F5 сложно нажать?

разные браузеры по разному воспринимают мероприятия по редактированию стилей
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
ctrl+F5 сложно нажать?

разные браузеры по разному воспринимают мероприятия по редактированию стилей

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

Может компоненты есть, под Joomla, который по запросу с админки заново генерирует ссылки к стилям, но новым адресам? В итоге, браузер посетителя точно загрузит самую актуальную информацию.

В общих настройках кэширование отключено?

Само с собой. Речь о кешировании браузерами.
*

lexxbry

  • Живу я здесь
  • 2387
  • 67 / 8
блин ну по сути кешируется в браузере на стороне клиента
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
блин ну по сути кешируется в браузере на стороне клиента

Да. Как это обойти?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Можно добавить к имени CSS-файлу ?v=UNIX-время или ?UNIX-время.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Можно добавить к имени CSS-файлу ?v=UNIX-время или ?UNIX-время.

Воот. Нету простого JS который будет каждый раз дописывать рандомную приставку к картинками и стилям на странице? Вот совершенно нет желания шаблон ковырять, ради разового показа сайта клиенту.
*

kern.USR

  • Давно я тут
  • 827
  • 68 / 1
Это js-ом не решается!
Это нужно решать сервером. У вас шаблон самописный? Стили откуда и как цепляются?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Это js-ом не решается!
На самом деле решается, другое дело - у Joomla есть инструмент для решения сервером.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Это js-ом не решается!
Это нужно решать сервером. У вас шаблон самописный? Стили откуда и как цепляются?

Речь не о конкретной ситуации, а вообще. Надоело мне, каждый раз объяснять клиенту, что бы он смотрел сайт в режиме инкогнито. Для показа изменений заказчику, разумнее будет временно внедрить JS-код, который тупо допишет в HTML коде сайта рандомную концовку к файлам .css, .jpg и .png - тогда стили с сервера прогрузятся по новой и он увидит сайт так, как задумано, а не так, как запомнил его браузер.

Вот я и спрашиваю, может есть, где-нибудь в интернете уже готовый скрипт для описанной цели?
*

ProtectYourSite

  • Живу я здесь
  • 2356
  • 135 / 4
  • Безопасность вебсайтов
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
https://api.joomla.org/cms-3/classes/Joomla.CMS.Document.Document.html#method_addScript в опциях указывать версионность.

Увы, ничего не понял( Только начал учить JS и дальше переменных пока не ушел.
*

markus-s

  • Захожу иногда
  • 87
  • 8 / 0
Объявите в index.php шаблона переменную, например $version. Задайте ей произвольное значение. Например, дату изменения стилей (ну, скажем - 230718).
При подключении стилей и(или) скриптов ниже, допишите строки - к имени файла добавьте версию таким образом:
Код
.../mystyle.css?<?php echo $version; ?>

В последующем, после редактирования стилей - обновляйте значение переменной $version - например меняйте дату на текущую (полагаю, если редактируете стили, изменить пару цифр одной строки в index.php не проблема). Браузеры будут загружать стили по-новой.
Как-то так. Возможны варианты и усовершенствования. У меня на некоторых сайтах определённые стили подключаются не в index.php, а в переопределении макетов - в таком варианте нам нужно что-то глобальное - например можно объявить константу (константы глобальны) и юзать её в т.ч. и в макетах.
Не знаю, честно говоря, насколько всё это правильно, но пока это наиболее действенный и удобный для меня вариант - по умолчанию стили и скрипты кешируются (и это хорошо), а если что-то поменял - изменил одну строчку и они подгрузились заново и... снова кешируются (уже в обновлённом варианте). ^-^
« Последнее редактирование: 23.07.2018, 20:17:22 от markus-s »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
надо что то типа такого: системный плагин, ловим onBeforeCompileHead, перебираем $document->_scripts и $document->_styleSheets, если файл локальный - добавляем '?v='.filemtime($file)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Объявите в index.php шаблона переменную, например $version. Задайте ей произвольное значение. Например, дату изменения стилей (ну, скажем - 230718).
При подключении стилей и(или) скриптов ниже, допишите строки - к имени файла добавьте версию таким образом:
Код
.../mystyle.css?<?php echo $version; ?>

В последующем, после редактирования стилей - обновляйте значение переменной $version - например меняйте дату на текущую (полагаю, если редактируете стили, изменить пару цифр одной строки в index.php не проблема). Браузеры будут загружать стили по-новой.
Как-то так. Возможны варианты и усовершенствования. У меня на некоторых сайтах определённые стили подключаются не в index.php, а в переопределении макетов - в таком варианте нам нужно что-то глобальное - например можно объявить константу (константы глобальны) и юзать её в т.ч. и в макетах.
Не знаю, честно говоря, насколько всё это правильно, но пока это наиболее действенный и удобный для меня вариант - по умолчанию стили и скрипты кешируются (и это хорошо), а если что-то поменял - изменил одну строчку и они подгрузились заново и... снова кешируются (уже в обновлённом варианте). ^-^



Да в том-то и дело, вариант когда модифицируется разметка шаблон сложен и отнюдь не универсален - это ведь на каждом сайте придется тратить время и редактировать шаблоны вывода. Не легче ли просто опубликовать универсальный js код, который после загрузки страницы, просто модифицирует некоторые ссылки в HTML коде? Ведь js как раз хорошо умеет работать с контентом на странице.

Для сравнения:
1. На публикацию js кода надо потратить всего пару секунд, отключается он также нажатием одной кнопки.
2. На ручное редактирование линков в шаблоне уйдет минимум 5 минут + нервы (оно того не стоит), после сдачи сайта еще и удалять придется все, что дописал.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Спойлер
[свернуть]
Положите перед </body>.
« Последнее редактирование: 23.07.2018, 21:41:36 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
Положите перед </body>.
Кэширование в пролете.
Не надо на js, дописать линкам в качестве версии время последнего изменения файла (автоматом, на php). Не так уж много таких файлов в шаблоне.
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Кэширование в пролете.
Не надо на js, дописать линкам в качестве версии время последнего изменения файла (автоматом, на php). Не так уж много таких файлов в шаблоне.
Да, так - дешево и сердито :). Похорошему надо
что то типа такого: системный плагин, ловим onBeforeCompileHead, перебираем $document->_scripts и $document->_styleSheets, если файл локальный - добавляем '?v='.filemtime($file)
+ onBeforeRender для картинок.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Кэширование в пролете.

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

Robert, огромное тебе спасибо за код! Все работает. Сам бы я хрен написал подобное) Не с моими навыками пока.
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
Это и нужно!
Это не нужно.
Вы думаете только о презентации заказчику. А о старых стилях, закэшированных у посетителей сайта, не думаете. И для них надо подсунуть новые имена измененных файлов (js, css).
Зачем в шаблоне чистить? На то он и шаблон.
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Это не нужно.
Вы думаете только о презентации заказчику. А о старых стилях, закэшированных у посетителей сайта, не думаете. И для них надо подсунуть новые имена измененных файлов (js, css).
Зачем в шаблоне чистить? На то он и шаблон.

О каких, к черту, посетителях идет речь, если методу я планирую использовать только для вновь созданных сайтов? Порой заказчик просить поменять цвета и картинки, было бы очень удобно иметь инструмент, который заставит браузер заказчика заново грузить стили при каждом заходе. Само с собой, после сдачи проекта отрубаем скрипт и тогда кеширование заработает вновь.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Исчезло меню при редактировании материалов и категорий

Автор Lier

Ответов: 20
Просмотров: 1978
Последний ответ 27.06.2022, 15:29:04
от dron
Не отображаются поля при создании и редактировании модулей и материалов

Автор Didj

Ответов: 5
Просмотров: 478
Последний ответ 04.05.2022, 21:49:39
от marksetter
Можно ли вывести поля материала в модуль?

Автор montpellier

Ответов: 12
Просмотров: 560
Последний ответ 20.12.2021, 13:41:56
от montpellier
Почему стили для @media print не видны в файле стилей custom.css

Автор GuDeVic

Ответов: 28
Просмотров: 894
Последний ответ 21.07.2021, 21:57:16
от effrit
Как можно добавить новые шрифты в Joomla 3?

Автор 62411

Ответов: 3
Просмотров: 619
Последний ответ 30.06.2021, 13:46:48
от Akeksandr