magento 2가 관리자 URL을 사용하여 미디어 이미지에 대한 지시문을 작성하는 이유는 무엇입니까?
예를 들어 카테고리 페이지 WYSIWYG에 이미지를 추가하면 추가됩니다.
<img src="{{media url="wysiwyg/image.jpg"}}" alt="" />
그러나 magento는 프론트 엔드를 위해 파싱하고 다음과 같습니다.
<img src="https://domain.co.uk/admin/cms/wysiwyg/directive/___directive/e3ttZWRpYSB1cmw9Ind5c2l3eWcvQ29udmV5b3JfYmVsdHNfZmFzdF9kZWxpdmVyeS5qcGcifX0,/key/b67d0a8069ef28a8443e0bad6d912512704213d60e1d9021b1ec2b9dd34bf390/" alt="">
브라우저에 관리자에게 링크되는 유일한 방법은 관리자에 로그인 한 경우입니다. 또한 프런트 엔드의 관리 경로를 공개하기 때문에 보안 문제가 발생합니다.
나는 vendor / magento / module-cms / Helper // Wysiwyg / images.php를보고 getImageHtmlDeclaration () 함수가 이것을 생성 하는 것처럼 보입니다.
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;
}
미디어에 정적 URL을 사용하려고했지만 여전히 사용하지 않으므로 생각할 수있는 유일한 해결책은 백엔드 / 관리자 대신 프론트 엔드 URL을 사용하도록이 기능을 편집하는 것입니다.
이것에 대한 도움은 대단히 감사하겠습니다 :)
{{media url="wysiwyg/some-image.jpg"}}
우리가 젠토에 기대하는 형식