Thêm một hình ảnh tĩnh trên trang PHTML và Khối CMS: Magento2


33

Làm cách nào tôi có thể Thêm hình ảnh tĩnh trên trang PHTML và Khối CMS vào Magento2? trong Magento 1.x có thể sử dụng$this->getSkinUrl('images/xyz.jpg')

Tôi đang thử phương pháp sau vào Magento2

Trong tệp Phtml:

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

Trong các khối CMS:

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

nhưng nó không hoạt động đúng. Hãy gợi ý cho tôi những sai lầm của tôi


Cố gắng của bạn có vẻ tốt. Bạn cần xóa bộ nhớ cache của mình khỏi phụ trợ cũng như xóa tệp bộ nhớ cache theo cách thủ công từ/var/cache
Praful Rajput

Câu trả lời:


51

url hình ảnh Cú pháp phù hợp cho cả hai static blockphtml, nhưng hãy đảm bảo rằng khi bạn viết mã này trong khối tĩnh

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

ở mặt trước nó trông giống như

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

Trong trường hợp Magento/lumapackagetên và themetên, bạn có thể thay thế với bạn packagethemetên

Vì vậy, bạn phải chăm sóc cho slide-bg.jpgtồn tại trong

pub/static/frontend/Magento/luma/en_US/images danh mục.

Trong trường hợp của bạn,

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

Cú pháp có vẻ ổn, nhưng ở phía trước Có vẻ như

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

Vì vậy, bạn phải chắc chắn rằng footer-logo.pngtồn tại trong

pub/static/frontend/Magento/luma/en_US/images danh mục.

Và đừng quên về "[quotation marks]


viewcho pub/static/frontend/Namespace/theme/locale storeurl trang web
Rajput đáng khen ngợi

15

Đối với mô-đun tùy chỉnh của bạn tạo một cấu trúc thư mục như

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

và trong phtml sử dụng mã sau

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

thx, đã tiết kiệm cho tôi rất nhiều thời gian để tìm kiếm: D
ZFNerd

@ZFNerd Chào mừng nhất
Manish

7

Giải pháp dễ dàng:

  1. Đặt hình ảnh của bạn trên Đường dẫn Magento 2 của bạn:

    /app/design/frontend/< Vendor >/< theme >/web/images
  2. Sử dụng mã này để gọi hình ảnh trong tệp phtml:

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

1

Nếu bạn cũng muốn giữ mọi thứ ngăn nắp hơn một chút, bạn có thể thêm hình ảnh cho các mô-đun lõi bị ghi đè theo chủ đề tùy chỉnh của mình. Ví dụ, tôi cần một hình ảnh cho mẫu bản tin. Tôi đã thêm một hình ảnh trong

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

và trong app/design/frontend/<Vendor>/<theme>/Magento_Newsletter/templates/subscribe.phtmltập tin của tôi, tôi đã sử dụng nó như dưới đây để lấy nguồn hình ảnh

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

Tôi sử dụng Magento v2.2


0

Một cách khác để làm điều này là sử dụng một hình ảnh nội tuyến:

<?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();
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.