Битрикс. Подключение файлов js и css в шаблоне

26.05.2018

Теги: CMSCSSHTMLJavaScriptPHPWeb-разработкаБитриксШаблонКомпонентаШаблонСайта

Посмотрим, как правильно подключать дополнительные файлы стилей и скрипты в шаблон сайта, чтобы корректно работала настройка сжатия файлов js и css (Настройки • Настройки модулей • Главный модуль):

Прямое подключение дополнительных файлов не рекомендуется

<script type="text/javascript" src="/js/script.js"></script>
<link rel="stylesheet" type="text/css" href="/css/style.css" />

Для правильного подключения есть методы

$APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH . '/css/style.css');
$APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH . '/js/script.js');
$APPLICATION->SetHeadString('<meta name="viewport" content="width=device-width, initial-scale=1">');  

С появлением ядра D7 добавились методы

use Bitrix\Main\Page\Asset; 

Asset::getInstance()->addCss(SITE_TEMPLATE_PATH . '/css/style.css');
Asset::getInstance()->addJs(SITE_TEMPLATE_PATH . '/js/script.js'); 
Asset::getInstance()->addString('<meta name="viewport" content="width=device-width, initial-scale=1">'); 

Записи равнозначные, можно использовать и запись без обращения к ядру D7 и с обращением.

$APPLICATION (экземпляр класса CMain) и Asset::getInstance() — глобальные объекты. Они доступны после подключения служебной части пролога Битрикса. Таким образом, можно их использовать в любом месте компонента, модуля или шаблона.

// подключение служебной части пролога
require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php');

Подключение js и css в шаблоне компонента

Для правильного подключения дополнительных файлов, подключаем их из шаблона компонента, а не прописываем в шаблон сайта.

$this->addExternalJS('/local/js/script.js');
$this->addExternalCss('/local/css/style.css');

Тогда эти файлы правильно объединятся с остальными.

Дополнительно

Поиск: CMS • CSS • HTML • JavaScript • PHP • Web-разработка • Битрикс • Шаблон компонента • Шаблон сайта

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.