Pourquoi magento 2 crée-t-il des directives pour les images multimédias à l'aide de l'URL d'administration?
par exemple, lorsque j'ajoute une image sur la page de catégorie WYSIWYG, elle ajoute
<img src="{{media url="wysiwyg/image.jpg"}}" alt="" />
mais magento analyse le frontend et est comme ça
<img src="https://domain.co.uk/admin/cms/wysiwyg/directive/___directive/e3ttZWRpYSB1cmw9Ind5c2l3eWcvQ29udmV5b3JfYmVsdHNfZmFzdF9kZWxpdmVyeS5qcGcifX0,/key/b67d0a8069ef28a8443e0bad6d912512704213d60e1d9021b1ec2b9dd34bf390/" alt="">
car sa liaison à l'administrateur ne se chargera sur le navigateur que si vous êtes connecté à l'administrateur. Cela pose également un problème de sécurité car il révèle le chemin d'administration sur le frontend.
J'ai regardé dans vendor / magento / module-cms / Helper // Wysiwyg / images.php et on dirait que la fonction getImageHtmlDeclaration () génère ceci
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;
}
J'ai essayé d'utiliser des URL statiques pour les médias, mais toujours pas utile, donc le seul moyen de contourner ce problème est de modifier cette fonction pour utiliser l'URL frontend au lieu du backend / admin
toute aide à ce sujet serait très appréciée :)
{{media url="wysiwyg/some-image.jpg"}}
format auquel nous nous attendions à Magento