diff --git a/Plugin/PageConfigRenderer.php b/Plugin/PageConfigRenderer.php new file mode 100644 index 0000000..4f026eb --- /dev/null +++ b/Plugin/PageConfigRenderer.php @@ -0,0 +1,45 @@ + + * + * @param Magento\Framework\View\Page\Config\Renderer $subject + * @param string $result + * @return string + */ + public function afterRenderAssets( + \Magento\Framework\View\Page\Config\Renderer $subject, + $result + ) { + if (strpos($result, 'rel="preload"') === false) { + return $result; + } + + preg_match_all('//', $result, $links); + + foreach ($links[0] as $link) { + if (strpos($link, '.woff') === false || + strpos($link, 'crossorigin="anonymous"') !== false + ) { + continue; + } + + $newLink = str_replace( + 'rel="preload"', + 'rel="preload" as="font" crossorigin="anonymous"', + $link + ); + $result = str_replace($link, $newLink, $result); + } + + return $result; + } +} diff --git a/etc/frontend/di.xml b/etc/frontend/di.xml index 857e375..7ba2a91 100644 --- a/etc/frontend/di.xml +++ b/etc/frontend/di.xml @@ -7,4 +7,12 @@ sortOrder="10" disabled="false"/> + + + + +