use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\Framework\View\Page\Config as PageConfig;
class Builder implements ObserverInterface
{
/** @var PageConfig $pageConfig */
private $pageConfig;
/**
* Builder constructor.
*
* @param PageConfig $pageConfig
*/
public function __construct(
PageConfig $pageConfig
) {
$this->pageConfig = $pageConfig;
}
/**
* @param Observer $observer
*
* @return $this
*/
public function execute(Observer $observer)
{
$resources = [
// dns-prefetch
[
'resource' => '//res.auxbeam.com',
'type' => 'dns-prefetch',
],
[
'resource' => '//i.ytimg.com',
'type' => 'dns-prefetch',
],
[
'resource' => '//www.facebook.com',
'type' => 'dns-prefetch',
],
// preconnect
[
'resource' => '//www.facebook.com',
'type' => 'preconnect',
],
];
foreach ($resources as $resource) {
$this->pageConfig->addRemotePageAsset(
$resource['resource'],
$resource['type'],
[
'attributes' => ['rel' => $resource['type']]
]
);
}
return $this;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="layout_generate_blocks_after">
<observer name="add_custom_asset" instance="Expressproj\Rewrite\Observer\Framework\View\Layout\Builder" />
</event>
</config>
调整显示顺序: