如何获取使用webpack加密生成的图像的路径

时间:2018-02-25 18:17:16

标签: image symfony webpack phpmailer webpack-encore

我想在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'时,图片未加载,因为它不存在logo,536324324V3.png。

我有两个选择:

  1. 首先,我禁用webpack自动重命名我的图像 安可。但我不知道怎么做。
  2. 第二:我让这个脚本能够将logo.png识别为 logo.536324324V3.png。通常它是自动的 资产部署后生成manifest.json,但在我的情况下 我的图像的路径在我的控制器中,所以我无法指定它 是一种资产。

    但我做不到

      $mail->AddEmbeddedImage(" {{ asset('images/logo.png')}}",'mon_logo', 
        'logo.png'); 
    无论如何,这没有任何意义。

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

    谢谢:)

1 个答案:

答案 0 :(得分:2)

假设您正在使用第二种方法中建议的资产组件,您可以直接传入应在服务ID \Symfony\Component\Asset\Packages下可用的类assets.packages,也可以传入Symfony 4。它是完全合格的班级名称。 Packages课程管理您的资源,也是asset()函数中Twig_Extension中使用的内容。

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

$fileUrl = $packages->getUrl('images/logo.png');