Magento 2 - Как я могу добавить пользовательский файл шаблона в <head>?

9

В magento 1.x я могу добавить файлы CSS в голову, используя вспомогательный код, как показано ниже.

<reference name="head">
    <action method="addCss"><stylesheet helper="module/helperclass/helperfunction"/></action>
</reference>

Но не могу сделать это на Magento 2.

Итак, теперь я добавил этот код <link rel="stylesheet" type="text/css" media="all" href="<?php echo $_helper->getCSSFile()?>">в контейнер after.body.start.

Кто-нибудь знает, как я могу добавить пользовательский файл шаблона в <head>?

Майк
источник

Ответы:

17

Если вы хотите добавить файл CSS в голову, вы можете использовать этот код:

<head>
   <css src="path_to/file.css" />
</head>

Но если вам нужно добавить пользовательский блок в голову, вы можете использовать этот код:

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="head.additional">
            <block class="Magento\Framework\View\Element\Template" name="block_name" template="path_to_file.phtml" />
        </referenceBlock>
    </body>
</page>

Надеюсь это поможет

Игорь Климчук
источник
Можете ли вы предложить, как сделать то же самое в админке, я перепробовал все имена ссылочных блоков, но безуспешно, хотя вывод получается правильно, когда я использую ссылочный блок контента
Sunil Verma
когда я использую свой пользовательский блок вместо Magento \ Framework \ View \ Element \ Template, это ошибка отображения "должен быть создан документ-объект", как удалить эту ошибку и использовать мой пользовательский блок?
Санджай Гохил
2

Обыскали этот ответ по всей сети, наконец, получив много экспериментов.

Я считаю, что это самый простой способ:
перейти на страницу, расположенную в панели администратора.
Найдите свою страницу и прокрутите вниз за разделом содержимого до раздела xml обновления макета.
В этом поле вы можете добавить специфичные для страницы CSS и JS.

<head> <css src="js/ingredients.css> </head>  

Это добавит ваш скрипт в начало раздела head.
(Делая вещи сложнее для вашего JS)

<head><script src="requirejs/require.js"/><script src="js/ingredients.js"/></head>  

Выше вы заметите, что я добавил requirejsфайл первым. Это сделано потому, что без добавления его до вашего персонализированного файла JS вы не сможете получить доступ к другим библиотекам, загруженным в requirejs.

Даниэль Баренбойм
источник