在PHTML页面和CMS块上添加静态图像:Magento2


33

如何在PHTML页面和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

Answers:


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/lumapackage名字和theme名称,你可以用你替换packagetheme名称

因此,您必须注意 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网站网址
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最受欢迎
马尼什

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();
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.