PHTML पेज और CMS ब्लॉक पर एक स्थिर छवि जोड़ें: Magento2


33

मैं Magento2 में PHTML पेज और CMS ब्लॉक पर एक स्थिर छवि कैसे जोड़ सकता हूं? Magento 1.x में यह संभव था$this->getSkinUrl('images/xyz.jpg')

मैं Magento2 में निम्नलिखित विधि का प्रयास कर रहा हूं

Phtml फ़ाइल में:

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

सीएमएस ब्लाकों में:

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

लेकिन यह ठीक से काम नहीं कर रहा है। कृपया मुझे मेरी गलतियों का सुझाव दें


आपकी कोशिश अच्छी लगती है। आपको अपने कैश को बैकएंड से फ्लश करने के साथ-साथ कैश फ़ाइल को मैन्युअल रूप से हटाने की आवश्यकता है/var/cache
प्रफुल्ल राजपूत

जवाबों:


51

छवि url सिंटैक्स दोनों के लिए ठीक है static blockऔर phtml, लेकिन सुनिश्चित करें कि जब आप इस कोड को स्टैटिक ब्लॉक में लिखते हैं

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

सामने के छोर पर यह दिखता है

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

नाम और नाम कहां Magento/lumaहै , आप अपने नाम और नाम से बदल सकते हैंpackagethemepackagetheme

तो आपको ध्यान रखना होगा slide-bg.jpgकि इसमें मौजूद है

pub/static/frontend/Magento/luma/en_US/images निर्देशिका।

आपके मामले में,

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

सिंटेक्स ठीक लगता है, लेकिन सामने वाला ऐसा दिखता है

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

इसलिए आपको यह सुनिश्चित करना होगा कि इसमें footer-logo.pngमौजूद है

pub/static/frontend/Magento/luma/en_US/images निर्देशिका।

और के बारे में भूल नहीं है "[quotation marks]


viewके लिए pub/static/frontend/Namespace/theme/locale storeसाइट यूआरएल के लिए
प्रफुल्ल राजपूत

15

अपने कस्टम मॉड्यूल के लिए एक निर्देशिका संरचना बनाएं

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

और phtml निम्नलिखित कोड का उपयोग करें

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

thx, ने मुझे खोजने के लिए बहुत समय बचाया: D
ZFNerd

@ZFNerd सर्वाधिक स्वागत
मनीष

7

आसान समाधान:

  1. अपनी छवि को अपने Magento 2 पथ पर रखें:

    /app/design/frontend/< Vendor >/< theme >/web/images
  2. Phtml फ़ाइल में छवि को कॉल करने के लिए इस कोड का उपयोग करें:

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

1

यदि आप चीजों को थोड़ा और व्यवस्थित रखना चाहते हैं, तो आप अपने कस्टम थीम के तहत अपने ओवरराइड कोर मॉड्यूल के लिए चित्र जोड़ सकते हैं। उदाहरण के लिए, मुझे समाचार पत्र के लिए एक छवि चाहिए। मैंने एक चित्र जोड़ा

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

और मेरी app/design/frontend/<Vendor>/<theme>/Magento_Newsletter/templates/subscribe.phtmlफाइल में मैंने इमेज सोर्स प्राप्त करने के लिए इसे नीचे की तरह इस्तेमाल किया

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

मैं Magento v2.2 का उपयोग करता हूं


0

ऐसा करने का एक और तरीका एक इनलाइन छवि का उपयोग कर रहा है:

<?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();
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.