Tambahkan gambar statis pada halaman PHTML dan Blok CMS: Magento2

33

Bagaimana saya bisa menambahkan gambar statis pada halaman PHTML dan Blok CMS ke Magento2? di Magento 1.x itu mungkin menggunakan$this->getSkinUrl('images/xyz.jpg')

Saya mencoba metode berikut ke Magento2

Dalam File Phtml:

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

Di Blok CMS:

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

tapi itu tidak berfungsi dengan baik. Tolong sarankan saya kesalahan saya

Satish Rana
sumber
Usaha Anda tampaknya bagus. Anda perlu membersihkan cache Anda dari backend serta menghapus file cache secara manual dari/var/cache
Praful Rajput

Jawaban:

51

image url Sintaks ok untuk keduanya static blockdan phtml, Tapi pastikan bahwa ketika Anda menulis kode ini di blok statis

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

di ujung depan sepertinya

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

Di mana Magento/lumaadalah packagenama dan themenama, Anda dapat mengganti dengan Anda packagedan themenama

Jadi Anda harus berhati-hati agar slide-bg.jpgada

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

Dalam kasus anda,

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

Sintaks sepertinya ok, tapi di frontend Sepertinya

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

Jadi, Anda harus memastikan yang footer-logo.pngada di

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

Dan jangan lupa "[quotation marks]

Keyur Shah
sumber
viewfor pub/static/frontend/Namespace/theme/locale storefor url situs
Praful Rajput
15

Untuk modul khusus Anda buat struktur direktori seperti

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

dan dalam phtml gunakan kode berikut

<img src='<?php echo $this->getViewFileUrl('Company_Module::images/image-icon.png'); ?>' alt="image-icon" width="30" height="25">
Manish
sumber
thx, menyelamatkan saya banyak waktu untuk mencari: D
ZFNerd
@ZFNerd Paling Selamat Datang
Manish
7

Solusi mudah:

  1. Tempatkan gambar Anda di Jalur Magento 2 Anda:

    /app/design/frontend/< Vendor >/< theme >/web/images
  2. Gunakan kode ini untuk memanggil gambar dalam file phtml:

    echo $block->getViewFileUrl('images/demo.jpg'); 
Deepak Bhatta
sumber
1

Jika Anda juga ingin menjaga hal-hal sedikit lebih terorganisir, Anda dapat menambahkan gambar untuk modul inti yang diganti di bawah tema khusus Anda. Misalnya, saya perlu gambar untuk formulir buletin. Saya menambahkan gambar di

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

dan dalam app/design/frontend/<Vendor>/<theme>/Magento_Newsletter/templates/subscribe.phtmlfile saya, saya menggunakannya seperti di bawah ini untuk mendapatkan sumber gambar

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

Saya menggunakan Magento v2.2

vkvkvk
sumber
0

Cara lain untuk melakukan ini adalah menggunakan gambar sebaris:

<?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" />
Scott
sumber
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();
Baharuni Asif
sumber