Здрасвуйте ребята.
Подскажите, хочу сделать Preload шрифтов, НО без модуля, а напрямую.
Уже перепробовала несколько вариантов, но все равно ничего(а также как и гугл рекомендует в своей документации)((((
Можете подсказать рабочий, правильный вариант???
Ребята, подскажите, что вообще никто незнает , как можно реализовать правильно без модуля!
НО без модуля, а напрямую
Что значит без модуля? Тогда правки после обновления слетят.
А так можно посмотреть в сторону хука index:links
и rel="preload"
:
https://developer.mozilla.org/ru/docs/Web/HTML/Preloading_content#Cross-origin_fetches
Так разговор про родной шрифт ядра который подключается с меткой времени при компиляции css. Может добавите в ядро прелоад шрифтов из css?
Не поделятся решением,потому что модуль тогда никто покупать не будет…
Модули выгоднее покупать если они постоянно совершенствуются … особенно тем кто не программирует …
Что-то эксперименты не дали никаких результатов. Вроде тег есть, ссылка именно на тот шрифт, что гугл хочет видеть предзагруженным. А толку нет, ошибка на месте.
Добрый день. Да все верно.
Подскажите, как реализовать.
Перебрала много вариантов, но ничего.
А проблема в том, что мешает временная метка каторая присваивается через ядро( как вариант подскажите, где в ядре можна убрать временну метку)
Файл
app/Tygh/Less.php
Функция
public static function parseUrls
Строка
$url = trim($content_path, '/') . '/' . $file_url . '?' . TIME;
Нужно убрать . '?' . TIME
Получится
$url = trim($content_path, '/') . '/' . $file_url;
БОльшое спасибо)))
Да сейчас все работает!
Метка убрана
Супер! И сайт внезапно вырвался из красной зоны с показателями 27/35 в 85/97.
И с таким подходом к реализации проблемы гарантированы, к сожалению
А в чем они могут заключаться? Есть подозрение, что это время там не просто так приделывается, а зачем оно там на самом деле?
Где-то в другой теме отвеал. Файлы кешируются на стороне бразуера. Шрифты считаются редкоизменяемыми, поэтому срок жизни кеша может быть год и выше. Большинство шрифтов действительно редко меняются, но шрифты иконок и другие подобные могут быть наборными. После добавления иконки вшрифт ссылка останеться преджней и браузеры с уже закешированной копией не будут скачивать его и не получат иконку. Заставить всех пользователей сбросить кеш браузера не выйдет.
Понятно. Ну, в целом не страшно, с учетом того что более чем за год ни одной иконки не добавилось и вряд ли добавится. А какой корректный путь к соблюдению рекомендаций гугла без внесения таких правок?
Небольшой костылек сделал,вроде все нормалек фурычит.
В файле /app/functions/smarty_plugins/block.styles.php
строку(57)
$content = '<link type="text/css" rel="stylesheet" href="' . $filename . '" />';
приводим к такому виду
$content = '<link type="text/css" rel="stylesheet" href="' . $filename . '" /> <link rel="preload" href="design/themes/responsive/media/fonts/glyphs.woff'.'?' . TIME.'" as="font" type="font/woff" crossorigin="anonymous" />';
Вот по такому принципу и можно выводить то что требуется.
Понимаю что это все коряво и костыльно,но прошу прощения,у меня нет знаний,опыта в php,ООП и т.п.Метод научного тыка с логикой…
Первый вариант - тот что обсуждается, снять метки. Возможные последствия описаны. Второй - подставлять нужный таймштамп в ссылки прелоада, так действует наш модуль.
Собственно, всё предельно просто
К сожалению мой вариант не могу проверить в гугле,тестирую на локалхосте.Если есть возможность протестируйте,временая метка добавляется как и положено.Принцип добавления шрифтов в моем решении не сложно понять.
Ваш вариант будет работать только до следующей очистки кэша с админки,потому что эта метка не постоянная а меняется после каждой очистки кэша движка.
Данная тема создана в разделе про обсуждение возможностей CS-Cart. Значит здесь стоит предлагать решения в рамках конкретного магазина.
Если есть предложения в ядро, то стоит обсуждать их в разделе:
https://forum.cs-cart.ru/c/kak-uluchshit-cs-cart