Simple module that allows for asynchronous CSS loading in Magento 2
- Go to your Magento root directory
- Run
composer require meanbee/magento2-csspreload
A Docker development environment is included with the project:
docker-compose run --rm cli magento-extension-installer Meanbee_CSSPreload
docker-compose up -d
To add assets to the block, provide the assets
argument:
<referenceBlock name="head.csspreload">
<arguments>
<argument name="assets" xsi:type="array">
<item name="unique_name" xsi:type="array">
<item name="path" xsi:type="string">css/filename.css</item>
<item name="attributes" xsi:type="array">
<item name="name" xsi:type="string">attribute</item>
<item name="value" xsi:type="string">value</item>
</item>
</item>
</argument>
</arguments>
</referenceBlock>
To modify the template of the generated <link />
tags, provide a link_template
argument, e.g.:
<referenceBlock name="head.csspreload">
<arguments>
<argument name="link_template" xsi:type="string"><![CDATA[<link rel="preload" as="style" href=":path:" onload="this.rel='stylesheet'" :attributes: />]]></argument>
</arguments>
</referenceBlock>
There are two variables that will be substituted: :path:
, which will be replaced by the asset path, and :attributes:
that will contain your attributes
of your assets
as HTML attributes.