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に追加したいなら、あなたはこのコードを使うことができます:

<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>

お役に立てれば


adminで同じことをする方法を提案できますか?私はすべての参照ブロック名を試しましたが、うまくいきませんでしたが、コンテンツreferenceblockを使用すると出力が正しく表示されます
Sunil Verma

Magento \ Framework \ View \ Element \ Templateの代わりにカスタムブロックを使用している場合、「オブジェクトdomdocumentを作成する必要があります」というエラーが表示され、このエラーを削除してカスタムブロックを使用するにはどうすればよいですか。
Sanjay Gohil 2017

2

この答えをWeb全体で検索し、最終的に多くの実験を行いました。

これが最も簡単な方法だと思います
。管理パネルにあるページに移動します。
ページを見つけ、コンテンツセクションを下にスクロールして、レイアウト更新xmlセクションを表示します。
そのボックスで、ページ固有のCSSとJSを追加できます。

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

これにより、スクリプトがヘッドセクションの上部に追加されます。
(あなたのJSのために物事をトリッキーにする)

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

上記では、requirejs最初にファイルを追加したことがわかります。これは、パーソナライズされたJSファイルの前に追加しないと、requirejsにロードされた他のライブラリにアクセスできないためです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.