Ich möchte ein Bild in der Modulvorlagendatei anzeigen. Wenn jemand mein Modul installiert, kann er dieses Bild sehen. Kann ich meine Bilder in meinem Modulverzeichnis speichern oder nicht?
Ich möchte ein Bild in der Modulvorlagendatei anzeigen. Wenn jemand mein Modul installiert, kann er dieses Bild sehen. Kann ich meine Bilder in meinem Modulverzeichnis speichern oder nicht?
Antworten:
Ja, Sie können Bilder abhängig vom Bereich Ihrer Vorlagen in Ihren Modul-Webverzeichnissen speichern. Der Pfad lautet: Vendor / Module / view / {frontend | adminhtml} / web / images /
Dann können Sie in Ihren * .phtml-Dateien das Bild anzeigen:
<img src="<?php echo $this->getViewFileUrl('Vendor_Module::images/image.png'); ?>" />
\Magento\Framework\View\Result\PageFactory
class in Ihren Konstruktor einfügen $pageFactory
und dann $pageFactory->getViewFileUrl()
method aufrufen . Bei js-Dateien habe ich keine Ahnung, wie man darauf kommt.
Ich mag es, meine PNGs mit Base-64 zu verschlüsseln und inline zu schreiben. Ich benutze 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'); ?>"
}
}
}
Sie würden das Widget-Initialisierungsskript von magento verwenden, um Ihr Javascript mit der definierten Option "imagename" zu starten. Diese Initialisierungstechnik wird normalerweise in PHP-Dateien durchgeführt. Mein Code geht davon aus, dass sich Ihr Bild in Vendor / Module / view / {frontend | adminhtml} / web / images / befindet.
Weitere Informationen finden Sie in der Magento 2-Dokumentation. http://devdocs.magento.com/guides/v2.1/javascript-dev-guide/javascript/js_init.html