So erhalten Sie den Medienpfad in Magento 2.1. Ich habe viele Optionen ausprobiert, aber es funktioniert nicht?
Ich möchte das Bild im Front-End in einer .phtml-Datei anzeigen.
So erhalten Sie den Medienpfad in Magento 2.1. Ich habe viele Optionen ausprobiert, aber es funktioniert nicht?
Ich möchte das Bild im Front-End in einer .phtml-Datei anzeigen.
Antworten:
Sie können den Medienpfad mit der $ object- Methode abrufen
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
echo $objectManager->get('Magento\Store\Model\StoreManagerInterface')
->getStore()
->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
Fabriken Methode
<?php
namespace Namespace\Modulename\Block;
use Magento\Framework\ObjectManagerInterface;
class Banners extends Template
{
protected $objectManager;
public function __construct(
.......
ObjectManagerInterface $objectManager
...) {
...........
$this->objectManager = $objectManager;
...............
}
public function getMediaUrl(){
$media_dir = $this->objectManager->get('Magento\Store\Model\StoreManagerInterface')
->getStore()
->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
return $media_dir;
}
}
........
?>
in der HTML- Datei
<?php echo $block->getMediaUrl(); ?>
Von der Verwendung von Object Manager wird gemäß den Codierungsstandards von Magento abgeraten. In einer Vorlagendatei können wir die Medien-URL mit dem folgenden Code abrufen:
$this->helper('\Magento\Cms\Helper\Wysiwyg\Images')->getBaseUrl()
Gemäß der Empfehlung von Magento sollte sich das Dokumentenstammverzeichnis Ihrer Website pub
während der Entwicklung außerhalb des Verzeichnisses und pub
beim Verschieben in die Produktion innerhalb des Verzeichnisses befinden.
Daher können wir das pub
Verzeichnis nicht hart codieren, während die Medien-URL in den Vorlagendateien abgerufen wird. Mit dem obigen Code erhalten Sie die richtige Medien-URL, unabhängig von Ihrem Dokumentstammspeicherort.
Rufen Sie den Medienpfad mit objectManager ab
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
echo $objectManager->get('Magento\Store\Model\StoreManagerInterface')
->getStore()
->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
Medienpfad durch Abhängigkeitsinjektion abrufen
protected $_storeManager;
public function __construct(
...
\Magento\Store\Model\StoreManagerInterface $storeManager,
...
) {
...
$this->_storeManager = $storeManager;
...
}
public function getMediaUrl()
{
$mediaUrl = $this->_storeManager
->getStore()
->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
return $mediaUrl;
}
Rufen Sie nun die Funktion getMediaUrl()
in phtml auf
<?php echo $block->getMediaUrl(); ?>
$ this -> _ storeManager-> getStore () -> getBaseUrl (\ Magento \ Framework \ UrlInterface :: URL_TYPE_MEDIA);
Bitte überprüfen Sie diesen Code. Es gibt Ihnen Medienpfad.