Перейти к содержанию
View in the app

A better way to browse. Learn more.

Новая Simpla

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Как исправить проблему с кодировкой в PageSpeed

Рекомендуемые сообщения

Опубликовано

Те, кто уже пробовал тестировать свой сайт на PageSpeed наверняка увидели красный восклицательный знак от сервиса по проблеме с кодировкой. И дальше, чтобы вы не делали, каким бы советам от гугла или чата GPT не следовали, он никуда от вас не денется. Это касается исключительно мультиязычной версии, если точнее, то там, где используются куки.

Это чисто косяк от гугла, но тем не менее. Причина заключается в том, что пока кука не установлена, PageSpeed неадекватно реагирует на jquery.cookie.js. Стоит вам его закоментить и все будет нормально.

Поэтому, если есть необходимость обойти этот баг, вам нужно, в index.tpl поставить условие для подключения jquery.cookie.js только в случае, когда есть кука. В итоге пишем:

 

{if $smarty.cookies.lang}
        <script src="design/{$settings->theme|escape}/js/jquery/jquery.cookie.js"></script>
    {/if}

Либо тот адрес, по которому находится jquery.cookie.js

Далее, находим код в файле api/Translate.php

if (!empty($_GET['lang'])) {
            $lang = $_GET['lang'];
        } elseif (!empty($_COOKIE['lang'])) {
            $lang = $_COOKIE['lang'];
        }

и меняем его на:

if (!empty($_GET['lang'])) {
            $lang = $_GET['lang'];
        } elseif (!empty($_COOKIE['lang'])) {
            $lang = $_COOKIE['lang'];
        } else {
            $this->db->query("SELECT code FROM __langs WHERE enabled=1 ORDER BY id ASC LIMIT 1");
            $lang = $this->db->result('code');
            // Устанавливаем куки на 30 дней (или другой срок по вашему выбору).
            setcookie('lang', $lang, time() + 30 * 24 * 60 * 60, '/');
        }

Вы также можете теперь использовать код {if $smarty.cookies.lang} {/if} для скрытия других не критично важных скриптов при первой загрузке, которые у вас грузятся на странице. Это даст существенный прирост рейтинга PageSpeed. Просто поместите свои скрипты между этими тегами.

На этом все.

 

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

Аккаунт

Навигация

Поиск

Поиск

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.