Cómo obtener la ruta de medios en Magento 2.1. ¿Intenté muchas opciones pero no funciona?
Quiero mostrar la imagen en el front-end dentro del archivo .phtml.
Cómo obtener la ruta de medios en Magento 2.1. ¿Intenté muchas opciones pero no funciona?
Quiero mostrar la imagen en el front-end dentro del archivo .phtml.
Respuestas:
puede obtener la ruta de medios por el método $ object
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
echo $objectManager->get('Magento\Store\Model\StoreManagerInterface')
->getStore()
->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
método de fábricas
<?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;
}
}
........
?>
en archivo phtml
<?php echo $block->getMediaUrl(); ?>
Se desaconseja el uso de Object Manager según los estándares de codificación de Magento. En un archivo de plantilla, podemos obtener la URL de los medios usando el siguiente código:
$this->helper('\Magento\Cms\Helper\Wysiwyg\Images')->getBaseUrl()
Según la recomendación de Magento, la raíz del documento de su sitio web debe estar fuera del pub
directorio durante el desarrollo y debe estar dentro del pub
directorio cuando se traslade a producción.
Por lo tanto, no podemos codificar el pub
directorio mientras obtenemos la URL de los medios en los archivos de plantilla. El código anterior le proporcionará la URL de medios correcta independientemente de la ubicación raíz de su documento.
Obtener ruta de medios por objectManager
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
echo $objectManager->get('Magento\Store\Model\StoreManagerInterface')
->getStore()
->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
Obtener ruta de medios por inyección de dependencia
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;
}
Ahora llame a la función getMediaUrl()
en phtml
<?php echo $block->getMediaUrl(); ?>
$ this -> _ storeManager-> getStore () -> getBaseUrl (\ Magento \ Framework \ UrlInterface :: URL_TYPE_MEDIA);
Por favor revise este código. Te dará la ruta de los medios.