首页 文章

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

提问于
浏览
0

我有一个问题,我想用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 .

我有2个选择:

  • 首先,我禁止使用webpack安装自动重命名我的图像 . 但我不知道如何 .

  • 第二:我使这个脚本能够将logo.png识别为logo.536324324V3.png . 通常情况下,在资产部署后生成manifest.json是自动的,但在我的情况下,我的图像的路径在我的控制器中,所以我不能指定它是一个资产 .

但我做不到

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

无论如何它没有任何意义 .

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

谢谢 :)

1 回答

  • 1

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

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

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

相关问题