Добрый день. Есть некоторая проблема при добавлении блоков с картинками через неастроки темы дизайна. Браузер их кеширует, и если загрузить новую картинку, то ничего не изменится, если не сбросить кеш, конечно.
Картинки загруженные через Магазин-Товары-Промо в url добавляют некий хеш ?v=1512231726, это необходимо добавить и картинкам загруженным через настройки тем. При этом если посмотреть код загруженных картинок в самих настройках - там этот хеш есть. А вот при выводе во frontend - уже нет.
Если использовать переменную {$promo.image} для вывода изображения промо-карточек, то там уже содержится нужный ?v=unixtimestamp, а не хеш.
Промо-карточки имеют свои id. При смене картинки на конкретной карточке имя файла изображения не меняется. Допустим для карточки id=2 все загруженные для неё изображения в формате jpg будут иметь имя 2.jpg. Поэтому после имени файла добавляется уникальный временной штамп, чтобы браузер адекватно отображал новую картинку, а не тянул из кеша старую с тем же именем. По такой же схеме работают ?v{$wa_theme_version} для css и js при правках кода, чтобы избежать проблем с кешированием.
Остальное зависит от настроек вашей темы дизайна. Всякие блоки с картинками и т.п. есть далеко не в каждой теме дизайна. Возможно даже стоит обратиться к разработчику темы дизайна с этим вопросом.
?v{$wa_theme_version} подходит для CSS и JS, т.к. они меняются действительно только с версией темы дизайна. Для картинок это не подходит. Значит там тоже нужен ?v=unixtimestamp
Они меняются ещё с каждым сохранением js или css файла и ?v1.1.0.2574 - это будет правка номер 2574 для темы версии 1.1.0. Однако суть не в этом. Ваш вопрос, наверное, следует отнести к конкретной теме дизайна и о том как именно добавить к тому, что вы хотите, метку времени unix или иную уникальную метку как в случае с правкой js или css, чтобы браузер не показывал кешированное изображение.
Проверил специально только что - не меняется ?v{$wa_theme_version} при загрузке нового файла.
?v{$wa_theme_version} относится к правке через редактор шаблонов темы дизайна для js и css.
К вашему случаю с изображениями это отношения не имеет.
Речь не о правке файлов темы дизайна, а о загрузке изображения через настройки.
Я вам уже дважды вообще-то ответил на вопрос разными словами, но вы не хотите видеть ответ.
К разработчику темы дизайна попробуйте обратиться.
(facepalm) Причем тут разработчик темы?)))))
Автор запроса разработчик тем и разговор с собой до нужного результата не довёл.
Уточнение картинки из кэша отображаются в разделе настроек?
Или на витрине?
Если в разделе настроек, то скоро планируется их обновление.
Если на витрине, то можете добавить доп параметр или проверку на режим отладки.
Добрый день, Алексей. Я про витрину магазина, в настройках меняются изображения нормально. При этом да, действильно, если загрузить новую картинку, то timestamp меняется, но почему-то не для всех картинок. Для логотипа в темах меняется, для других картинок почему-то нет. Пока не разобрался в чем причина.
В общем, кажется, разобрался в чем тут дело. Если, например, в настройках приложения Сайт мы загружаем картинку, то в файле, который принадлежит этому же приложению, мы её выведем вот так {$wa_theme_url}{$theme_settings.logo}?v{$wa_theme_version}, то v{$wa_theme_version} обновится и картинка тоже.
Но если мы выведем эту картинку из файла для приложения магазин {$wa_parent_theme_url}{$theme_settings.logo}?v{$wa_theme_version}, то картинка не обновится, как и v{$wa_theme_version}, т.к. видимо версия берется с магазинной темы.
Вот в этом и проблема...
Для решения данной проблемы можно использовать ?v={wa_date('timestamp')}
Можно использовать просто {time()}.
Другое дело, что при каждой загрузке страницы с такой картинкой — браузер будет загружать её с сервера целиком.
В ближайшем обновлении Фреймворка мы будем добавлять актуальный timestamp во время загрузки изображений к названию файла прямо в theme.xml, так что вам не нужно будет беспокоиться об этом.
Супер. Но я точно могу вам доверять?! У вас нет бейджика Webasyst =)
Теперь есть. Выходит можно доверять. :)
Спасибо! =)