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

How to get path to images generated with webpack encore

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

我将 webpack 与 encore 一起使用(为 symfony4 设置资产的新方法)。 我的所有图片都在 public 文件夹中重命名。 myimagename.65342324b5.jg I/O myimagename.jpg 当我 运行 encore 部署 assets.

问题是当我想要 AddEmbeddedImage

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

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

当我想在我的 html 电子邮件正文中引用 'mon_logo' 时,图像未加载,因为它不存在唯一的徽标。536324324V3.png。

我有两个选择:

  1. 首先,我使用 webpack 禁用自动重命名图像 再来一次,但我不知道如何。
  2. 其次:我让这个脚本能够将 logo.png 识别为 徽标。536324324V3.png。通常它是自动的 manifest.json 在资产部署后生成,但在我的例子中 我的图像路径在我的控制器中,所以我无法指定它 是一项资产。

    但是我做不到

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

    反正没意义。

所以如果你有解决方案,我会采纳:)

谢谢:)

假设您正在使用第二种方法中建议的 Asset-component,您可以只传入 class \Symfony\Component\Asset\Packages,它应该在服务 ID [=12= 下可用] 并且 Symfony 4 也可能在其完全限定的 class 名称下。 Packages class 管理您的资产,也是 asset() 函数中的 Twig_Extension 使用的内容。

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

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