Автор Тема: Обновление кеша сайта и отображение в Яндексе  (Прочитано 731 раз)

26 Август 2016, 17:22:20
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте.
Версия 1.6.9. В админке, в разделе Производительность, установлено "Умное кеширование CSS". Каждый раз, при обновлении кеша сайта переписывается суммарный CSS файл с новым именем. Даже, если файлы стилей не были затронуты. Обновляюсь 1-2 раза в неделю.

/themes/default-bootstrap/cache/v_345_36925c0c0672c0986c18312b40ca79_all.css
/themes/default-bootstrap/cache/v_346_36925c0c0672c0986c18312b40ca79_all.css

Имя файла постоянно меняется, и при просмотре сохранённой копии страниц сайта в Яндексе, он не находит старый файл стилей и отображаются уродливые страницы.
26 Август 2016, 20:26:39
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
ККК не всегда нужно включать. Тут многое зависит от того, как тема сделана.
27 Август 2016, 11:13:45
Ответ #2
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
ККК не всегда нужно включать. Тут многое зависит от того, как тема сделана.
У дефолтной темы это не так?
27 Август 2016, 11:41:53
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
При обновоении prestashop всегда будет перезаписывать файл стилей.
То что в кеше хранится старая копия ничего страшного. Важна только актуальная информация.
27 Август 2016, 18:43:44
Ответ #4
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
При обновоении prestashop всегда будет перезаписывать файл стилей.
То что в кеше хранится старая копия ничего страшного. Важна только актуальная информация.
Это меня не смущает, смущает другое:
я посмотрел в папке cache 11 версий  css  и  9 версий js файлов. Все они имеют одну дату и одинаковый префикс.
v_306_nnnn_all.js
и
v_360_nnnn_all.css
где nnnn – произвольный 32-разрядный номер
Кеш Яндекса по одному из запросов, просит файлы с префиксом
v_300_nnnn_all.js
и
v_355_nnnn_all.css
Что характерно, нужные 32-разр. номера имеются в папке cache  сайта, но у них переписан префикс. Вместо 300 и 355–> 306 и 360.
Если вручную переписать номер версий, всё работает.
Надеюсь, понятно объяснил.
Похоже на баг скрипта. Думаю, скрипт не должен менять номера старых файлов.
28 Август 2016, 10:17:23
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Скрипт не должен менять имена. Такого нет в базовой версии. Имена файлов создаются заново.
29 Август 2016, 11:40:11
Ответ #6
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Скрипт не должен менять имена. Такого нет в базовой версии. Имена файлов создаются заново.
ТО есть, старые файлы, должны оставаться с первоначальной датой? Вы смотрели у себя в папке cache, у вас это так, или вы рассуждаете теоретически?
29 Август 2016, 12:03:55
Ответ #7
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Вместо 300 и 355–> 306 и 360.
Это меняется версия файлов кеша при любом изменении css и js.
29 Август 2016, 12:53:42
Ответ #8
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Вместо 300 и 355–> 306 и 360.
Это меняется версия файлов кеша при любом изменении css и js.
В этом и проблема, зачем менять имена файлов? Кеши поисковых систем ссылаются на файлы стилей, а скрипт после этого меняет их адреса.
29 Август 2016, 13:44:10
Ответ #9
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В файле /classes/Media.php есть такие строки:
public static function clearCache()
{
foreach (array(_PS_THEME_DIR_.'cache') as $dir)
if (file_exists($dir))
foreach (scandir($dir) as $file)
if ($file[0] != '.' && $file != 'index.php')
Tools::deleteFile($dir.DIRECTORY_SEPARATOR.$file, array('index.php'));

$version = (int)Configuration::get('PS_CCCJS_VERSION');
Configuration::updateValue('PS_CCCJS_VERSION', ++$version);
$version = (int)Configuration::get('PS_CCCCSS_VERSION');
Configuration::updateValue('PS_CCCCSS_VERSION', ++$version);
}
Посмотрите последние 4 строки, зачем это сделано?
Если убрать увеличение номера версии, кто-то знает что это за собой повлечёт?
29 Август 2016, 14:38:54
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Это улучшения работы кешировая добавили. В prestashop 1.5 без этого кода было. Версии не добавлялись. Сейчас создается служебный файл и в нем указывается версия чтобы было видно когда произошло кеширование. Если удалишь version тогда нужно будет во всем коде искать и удалять эту переменную.
29 Август 2016, 19:35:17
Ответ #11
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
А зачем же меняется номер версии в старых версиях файлов? Как быть с кешем Яндекса?
30 Август 2016, 10:47:59
Ответ #12
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Media::cccCss  Меняется дата создания закешированого файла. Дата создания учитывается при определении времени действия кеша.
А зачем вам кеш Яндекса? Пользователи переходят по ссылкам прямо на сайт, на сайте полгружаются актуальные версии файлов стилей.
30 Август 2016, 22:12:01
Ответ #13
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
…А зачем вам кеш Яндекса? Пользователи переходят по ссылкам прямо на сайт, на сайте полгружаются актуальные версии файлов стилей.
По сути, это верно. Но ведь приятней, когда всё работает правильно))
30 Август 2016, 22:18:45
Ответ #14
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Все и так правильно. Были изменения на сайте, значит нужно обновить информацию в поисковике.
Клиент захотел посмотреть на скидках какие раньше цены были, полез в кеш поисковика, а ничего не смог увидеть  :)
Самый правильный подход. Нех.. лазить где не нужно.