¿Por qué está magento 2 creando directivas para imágenes de medios usando la URL del administrador?
por ejemplo, cuando agrego una imagen en la página de categoría WYSIWYG, agrega
<img src="{{media url="wysiwyg/image.jpg"}}" alt="" />
pero luego magento lo analiza para frontend y es así
<img src="https://domain.co.uk/admin/cms/wysiwyg/directive/___directive/e3ttZWRpYSB1cmw9Ind5c2l3eWcvQ29udmV5b3JfYmVsdHNfZmFzdF9kZWxpdmVyeS5qcGcifX0,/key/b67d0a8069ef28a8443e0bad6d912512704213d60e1d9021b1ec2b9dd34bf390/" alt="">
porque se vincula al administrador, la única forma en que se cargará en el navegador es si ha iniciado sesión en el administrador. Esto también plantea un problema de seguridad porque está revelando la ruta del administrador en la interfaz.
Miré en vendor / magento / module-cms / Helper // Wysiwyg / images.php y parece que la función getImageHtmlDeclaration () genera esto
public function getImageHtmlDeclaration($filename, $renderAsTag = false)
{
$fileurl = $this->getCurrentUrl() . $filename;
$mediaUrl = $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
$mediaPath = str_replace($mediaUrl, '', $fileurl);
$directive = sprintf('{{media url="%s"}}', $mediaPath);
if ($renderAsTag) {
$html = sprintf('<img src="%s" alt="" />', $this->isUsingStaticUrlsAllowed() ? $fileurl : $directive);
} else {
if ($this->isUsingStaticUrlsAllowed()) {
$html = $fileurl; // $mediaPath;
} else {
$directive = $this->urlEncoder->encode($directive);
$html = $this->_backendData->getUrl('cms/wysiwyg/directive', ['___directive' => $directive]);
}
}
return $html;
}
Traté de usar URL estáticas para los medios, pero todavía no lo uso, así que lo único que puedo pensar es editar esta función para usar la URL de frontend en lugar de backend / admin
cualquier ayuda en esto sería muy apreciada :)
{{media url="wysiwyg/some-image.jpg"}}
formato que esperamos en Magento