Tại sao magento 2 tạo chỉ thị cho hình ảnh phương tiện bằng url quản trị viên?
ví dụ khi tôi thêm một hình ảnh trên trang chuyên mục WYSIWYG, nó sẽ thêm vào
<img src="{{media url="wysiwyg/image.jpg"}}" alt="" />
nhưng sau đó magento phân tích cú pháp cho frontend và giống như thế này
<img src="https://domain.co.uk/admin/cms/wysiwyg/directive/___directive/e3ttZWRpYSB1cmw9Ind5c2l3eWcvQ29udmV5b3JfYmVsdHNfZmFzdF9kZWxpdmVyeS5qcGcifX0,/key/b67d0a8069ef28a8443e0bad6d912512704213d60e1d9021b1ec2b9dd34bf390/" alt="">
bởi vì liên kết của nó với quản trị viên theo cách duy nhất nó sẽ tải trên trình duyệt là nếu bạn đăng nhập vào quản trị viên. Điều này cũng đặt ra một vấn đề bảo mật vì nó đang tiết lộ đường dẫn quản trị viên trên frontend.
Tôi đã xem nhà cung cấp / magento / module-cms / Helper // Wysiwyg / images.php và trông giống như hàm getImageHtmlDeclaration () tạo ra điều này
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;
}
Tôi đã cố gắng sử dụng các url tĩnh cho phương tiện nhưng vẫn không sử dụng được nên công việc duy nhất tôi có thể nghĩ đến là chỉnh sửa chức năng này để sử dụng url frontend thay vì backend / admin
bất kỳ trợ giúp về điều này sẽ được rất nhiều đánh giá cao :)
{{media url="wysiwyg/some-image.jpg"}}
định dạng mà chúng tôi mong đợi ở Magento