PHTML 페이지 및 CMS 블록에 정적 이미지 추가 : Magento2


33

Pagent 페이지의 정적 이미지와 CMS 블록을 Magento2에 추가하는 방법 Magento 1.x에서는 다음을 사용하여 가능했습니다.$this->getSkinUrl('images/xyz.jpg')

Magento2에 방법을 따르려고합니다.

Phtml 파일에서 :

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

CMS 블록에서 :

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

하지만 제대로 작동하지 않습니다. 내 실수를 제안 해주세요


당신의 시도는 좋아 보인다. 백엔드에서 캐시를 플러시하고 다음에서 캐시 파일을 수동으로 제거해야합니다./var/cache
Praful Rajput

답변:


51

image 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이고 package이름과 theme이름, 당신은 당신과 함께 대체 할 수 packagetheme이름

당신이 돌봐 줘야 그래서 slide-bg.jpgIS의 존재

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]


viewpub/static/frontend/Namespace/theme/locale store사이트 URL 을 위한
Praful Rajput

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 가장 환영합니다
Manish

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');

마 젠토 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();
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.