如何获取使用webpack再现生成的图像的路径

问题描述 投票:1回答:1

我想在phpmailer的电子邮件中包含我想要的图像有一个问题。我已经尝试使用swift邮件程序与我的symfony应用程序,但没有工作我已经尝试了所有配置(所有主机所有端口所有加密等)3天我打电话给他们等没有任何成功。它适用于本地而非远程环境......无论如何,让我们回到我的问题。

我使用带有安可的webpack(为symfony4设置资产的新方法)。我的所有图像都在公用文件夹中重命名。 myimagename.65342324b5.jg I / O myimagename.jpg当我运行安可来部署资产时。

问题是我想要AddEmbeddedImage

我假设我在assetsfolder中有logo.png。当我部署资产时,它在公共图像文件夹中重命名为logo.536324324V3.png。所以,当我这样做

$mail->AddEmbeddedImage('images/logo.png','mon_logo', 'logo.png');

当我想在我的电子邮件的html主体中引用'mon_logo'时,图像未加载,因为它不存在仅logo536324324V3.png。

我有2个选择:

  1. 首先,我禁用webpack安可自动重命名我的图像。但我不知道如何。
  2. 第二:我使这个脚本能够将logo.png识别为logo.536324324V3.png。通常情况下,在资产部署后生成manifest.json是自动的,但在我的情况下,我的图像的路径在我的控制器中,所以我不能指定它是一个资产。 但我不能这样做 $ mail-> AddEmbeddedImage(“{{asset('images / logo.png')}}”,'mon_logo','logo.png'); 无论如何它没有任何意义。

所以,如果你有解决方案,我会接受它:)

谢谢 :)

image symfony webpack phpmailer webpack-encore
1个回答
2
投票

假设您正在使用第二种方法中建议的Asset-component,您可以传入类\Symfony\Component\Asset\Packages,它应该在服务id assets.packages下可用,而Symfony 4也可以在它的完全限定类名下传递。 Packages类管理您的资产,也是asset()函数中Twig_Extension中使用的。

所以在你的代码中你可能会做这样的事情:

$fileUrl = $packages->getUrl('images/logo.png');
© www.soinside.com 2019 - 2024. All rights reserved.