1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - новый и перспективный форумный движок от бывших создателей vBulletin.

Какой CDN вы используете для Jquery?

Тема в разделе "Основные вопросы по XenForo", создана пользователем Максим Скворцев, 9 мар 2011.

Загрузка
  1. Максим Скворцев

    Максим Скворцев Активный пользователь

    Регистрация:
    01.03.11
    Сообщения:
    26
    Симпатии:
    9
    собственно сабж :)
     
  2. Pepelac

    Pepelac Продам луц в бутылках Команда форума

    Регистрация:
    28.09.10
    Сообщения:
    1.794
    Симпатии:
    1.349
    Я предпочитаю гугловский.
     
  3. WalRus

    WalRus Местный

    Регистрация:
    04.02.11
    Сообщения:
    33
    Симпатии:
    21
    +1 за гугловский!
     
  4. FractalizeR

    FractalizeR XenForo Addicted Команда форума

    Регистрация:
    27.09.10
    Сообщения:
    1.085
    Симпатии:
    823
    Версия XF:
    1.3.2
    Если форум предназначен для России, можно использовать CDN Яндекса. Только нужно немного форум подпатчить.

    1. Открываем library\XenForo\Dependencies\Public.php и заменяем метод getJquerySource на такой (просто добавляем еще один case фактически):
    PHP:
        /**
         * Fetch the path / URL to the jQuery core library
         *
         * @param boolean $forceLocal If true, forces the local version of jQuery
         *
         * @return string
         */
        
    public static function getJquerySource($forceLocal false)
        {
            
    $jQueryVersion XenForo_Application::$jQueryVersion;
            
    $min '.min';

            
    // CDN sources from http://docs.jquery.com/Downloading_jQuery#CDN_Hosted_jQuery
            
    $source = ($forceLocal 'local' XenForo_Application::get('options')->jQuerySource);
            switch (
    $source)
            {
                case 
    'jquery':
                case 
    'mt':
                    return 
    "http://code.jquery.com/jquery-{$jQueryVersion}{$min}.js";

                case 
    'google':
                    return 
    "http://ajax.googleapis.com/ajax/libs/jquery/{$jQueryVersion}/jquery{$min}.js";

                case 
    'microsoft':
                    return 
    "http://ajax.microsoft.com/ajax/jquery/jquery-{$jQueryVersion}{$min}.js";

                case 
    'yandex':
                    return 
    "http://yandex.st/jquery/{$jQueryVersion}/jquery{$min}.js";

                default:
                    return 
    "js/jquery/jquery-{$jQueryVersion}{$min}.js";
            }
        }
    }
    2. В Debug режиме идем в панель управления, находим там опцию jQuery Source (CDNjQuery) в разделе Performance (Производительность) и нажимаем карандашик справа (редактирование). Format Parameters (Параметры формата) заменяем на:

    Код:
    local=Local
    google=Google Ajax API CDN
    jquery=jQuery CDN
    microsoft=Microsoft CDN
    yandex=Яндекс CDN
    Вот и все. Теперь в настройках форума можно выбрать Яндекс CDN и jQuery будет загружаться с Яндекса. Только не забудьте отключить Debug режим.
     
    Romchik®, WalRus и Pepelac нравится это.
  5. WalRus

    WalRus Местный

    Регистрация:
    04.02.11
    Сообщения:
    33
    Симпатии:
    21
    PHP:
    case 'yandex':
                    return 
    "http://yandex.st/jquery/{$jQueryVersion}/jquery-{$jQueryVersion}{$min}.js";

    и в итоге получаем Not found - http://yandex.st/jquery/1.4.4/jquery-1.4.4.min.js

    Правильный путь таким должен быть:

    PHP:
    case 'yandex':
                    return 
    "http://yandex.st/jquery/{$jQueryVersion}/jquery.min.js";
    :)
     
  6. FractalizeR

    FractalizeR XenForo Addicted Команда форума

    Регистрация:
    27.09.10
    Сообщения:
    1.085
    Симпатии:
    823
    Версия XF:
    1.3.2
    Это не совсем верно, поскольку xenForo сам выбирает, минифицированный вариант или полный. Правильный путь такой, видимо:
    PHP:
    case 'yandex':
                    return 
    "http://yandex.st/jquery/{$jQueryVersion}/jquery{$min}.js";
     
    WalRus нравится это.
  7. WalRus

    WalRus Местный

    Регистрация:
    04.02.11
    Сообщения:
    33
    Симпатии:
    21
    Да, теперь все правильно. Спасибо. :)
     
  8. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1.921
    Симпатии:
    1.160
    Версия XF:
    1.0.4
    Можно было бы и без правки - 1 плагином в хуке container_public_params, но разработчики почему-то оставили прямой вызов XenForo_Dependencies_Public::getJquerySource(); в XenForo_ControllerPublic_Editor, поэтому действительно в данный момент лучше править чтобы jquery не тянулась из разных источников.

    Хотя с другой стороны в админке все равно локальная jquery используется, поэтому использование локального jquery только в 1-м случае, а для всего остального использование яндекса, без правки файлов продуктом, может быть приемлемым вариантом.
     
    WalRus и TAIFUN нравится это.

Поделиться этой страницей