Quiero mostrar una imagen en el archivo de plantilla del módulo. Cuando alguien instala mi módulo, puede ver esa imagen. ¿Puedo almacenar mis imágenes dentro de mi directorio de módulos o no?
Quiero mostrar una imagen en el archivo de plantilla del módulo. Cuando alguien instala mi módulo, puede ver esa imagen. ¿Puedo almacenar mis imágenes dentro de mi directorio de módulos o no?
Respuestas:
Sí, puede almacenar imágenes en los directorios web de su módulo dependiendo del área de sus plantillas. La ruta es: Vendor / Module / view / {frontend | adminhtml} / web / images /
Luego, en sus archivos * .phtml, puede mostrar la imagen:
<img src="<?php echo $this->getViewFileUrl('Vendor_Module::images/image.png'); ?>" />
\Magento\Framework\View\Result\PageFactory
clase en su constructor como $pageFactory
y luego llamar al $pageFactory->getViewFileUrl()
método. Para los archivos js no tengo idea de cómo puedes obtenerlo.
Me gusta codificar en base 64 mis PNG e incorporarlos. Yo uso https://www.base64-image.de .
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJ....=">
<script type="text/x-magento-init">
{
<?php /* this defines the target of the widget */ ?>
"#target_id": {
<?php /* this defines the widget */ ?>
"image.widget.name": {
"imagename" : "<?php echo $this->getViewFileUrl('Vendor_Module::images/image.png'); ?>"
}
}
}
Usaría el script de inicialización del widget de magento para iniciar su javascript con la opción "imagename" definida. Esta técnica de inicialización generalmente se realiza en archivos phtml. Mi código asume que su imagen está en Proveedor / Módulo / vista / {frontend | adminhtml} / web / images /
Para más información, puede ver la documentación de magento 2. http://devdocs.magento.com/guides/v2.1/javascript-dev-guide/javascript/js_init.html