Aggiungi un'immagine statica sulla pagina PHTML e sui blocchi CMS: Magento2


33

Come posso aggiungere un'immagine statica sulla pagina PHTML e sui blocchi CMS in Magento2? in Magento 1.x era possibile usare$this->getSkinUrl('images/xyz.jpg')

Sto provando il seguente metodo in Magento2

Nel file Phtml:

<img src=”<?php echo $this->getViewFileUrl(‘images/footer-logo.png’); ?>” alt=”Demo”>

Nei blocchi CMS:

<img src=”{{view url=”images/slide-bg.jpg”}}” alt=”” />

ma non funziona correttamente. Per favore, suggeriscimi i miei errori


Il tuo tentativo sembra buono. È necessario svuotare la cache dal back-end e rimuovere manualmente il file della cache da/var/cache
Praful Rajput,

Risposte:


51

image url La sintassi è ok per entrambi static blocke phtml, ma assicurati di scrivere questo codice nel blocco statico

<img src="{{view url="images/slide-bg.jpg"}}" alt="test" />

sul davanti sembra

http: //localhost/magento2new/pub/static/frontend/Magento/luma/en_US/images/slide-bg.jpg

Dove Magento/lumaè il packagenome e il themenome, è possibile sostituire con il tuo packagee il themenome

Quindi devi stare attento perché slide-bg.jpgesiste

pub/static/frontend/Magento/luma/en_US/images directory.

Nel tuo caso,

<img src='<?php echo $this->getViewFileUrl('images/footer-logo.png'); ?>' alt="Demo">

La sintassi sembra ok, ma nel frontend Sembra

http: //localhost/magento2new/pub/static/frontend/Magento/luma/en_US/images/footer-logo.png

Quindi devi assicurarti che footer-logo.pngesista in

pub/static/frontend/Magento/luma/en_US/images directory.

E non dimenticare "[quotation marks]


viewper l' pub/static/frontend/Namespace/theme/locale storeURL del sito
Praful Rajput,

15

Per il tuo modulo personalizzato crea una struttura di directory come

Company/Module/view/frontend/web/images/image-icon.png

e in phtml usa il seguente codice

<img src='<?php echo $this->getViewFileUrl('Company_Module::images/image-icon.png'); ?>' alt="image-icon" width="30" height="25">

grazie, mi ha risparmiato un sacco di tempo per la ricerca: D
ZFNerd

@ZFNerd Most Welcome
Manish

7

Soluzione semplice:

  1. Metti la tua immagine sul tuo percorso Magento 2:

    /app/design/frontend/< Vendor >/< theme >/web/images
  2. Usa questo codice per chiamare l'immagine nel file phtml:

    echo $block->getViewFileUrl('images/demo.jpg'); 

1

Se desideri anche mantenere le cose un po 'più organizzate, puoi aggiungere immagini per i tuoi moduli core sostituiti sotto il tuo tema personalizzato. Ad esempio, ho bisogno di un'immagine per il modulo newsletter. Ho aggiunto un'immagine in

app/design/frontend/<Vendor>/<theme>/Magento_Newsletter/web/images/envelope.png

e nel mio app/design/frontend/<Vendor>/<theme>/Magento_Newsletter/templates/subscribe.phtmlfile l'ho usato come di seguito per ottenere la fonte dell'immagine

$this->getViewFileUrl('Magento_Newsletter::images/envelope.png');

Uso Magento v2.2


0

Un altro modo per farlo è usare un'immagine incorporata:

<?php
// get contents of a file into a string
$filename = "path/to/image.jpg";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
$imagedata = base64_encode($content);
fclose($handle);
?>

<img src="data:image/jpeg;base64, <?= $imagedata; ?>" alt="alt text" />

0
$imageUrl = $this->helper('Magento\Catalog\Helper\Image')
                        ->init($mainProduct, 'product_base_image')
                        ->constrainOnly(TRUE)
                        ->keepAspectRatio(TRUE)
                        ->keepTransparency(TRUE)
                        ->keepFrame(FALSE)
                        ->resize(281, 281)->getUrl();
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.