Symfony 5 Mailer嵌入图像,带liip imagine_过滤器

Symfony 5 Mailer嵌入图像,带liip imagine_过滤器,symfony,symfony5,liipimaginebundle,symfony-mailer,Symfony,Symfony5,Liipimaginebundle,Symfony Mailer,在Symfony 5项目中,电子邮件是使用Mailer components TemplatedEmail()函数创建的。 在使用的细枝模板($templatedEmail->htmlTemplate(..)中),使用 <img src="{{ email.image('@v_images/user-'~user.id~'/v.jpg') }}"> 我不确定到底发生了什么,但路径似乎连接得很奇怪…我认为您应该使用combine with 基于此, 如果您需要资产

在Symfony 5项目中,电子邮件是使用Mailer components TemplatedEmail()函数创建的。 在使用的细枝模板($templatedEmail->htmlTemplate(..)中),使用

<img src="{{ email.image('@v_images/user-'~user.id~'/v.jpg') }}">
我不确定到底发生了什么,但路径似乎连接得很奇怪…

我认为您应该使用combine with

基于此,

如果您需要资产的绝对url,请使用绝对url()细枝

并将其用作:

<img src="{{ email.image(app_base_url ~ asset('@v_images') ~ /user-'~user.id~'/v.jpg) | imagine_filter('v_watermark')) }}">
服务与产品yaml

parameters:
   app.base_url: 'https://ecommerce.hanff.lu/'
然后将您的twig.yaml更新为

twig:
  globals:
    app_base_url: '%app.base_url%'

您是否尝试过将筛选器嵌套在对
email.image的调用中?像
email.image('path')| imagine_filter('v_watermark'))
我现在这样做了-导致这个错误:找不到模板“@v_images/user-1https:/127.0.0.1:8000/media/cache/resolve/v_watermark/v.jpg”([SENSIBLE_LOCAL_path_-in_PROJECT])。我不确定到底发生了什么,但路径似乎连接得很奇怪…请将您尝试的内容与问题产生的错误一起添加,我将向上投票,也许其他人知道。为什么不尝试使用
asset()
获取图像路径?将它与
imagine\u过滤器
@vincentPHILIPPE相结合,我认为资产只返回公共路径。此处使用的图像来自非公共路径,因此嵌入到电子邮件中。我可能错了,后悔公共道路是我唯一想的…谢谢你的方法。但是,在asset()上使用绝对url()并不会改变将资产存储在公共场所的需要,在我的情况下,这不是一个选项。
<img src="{{ absolute_url(asset('images/logo.png')) }}" alt="Symfony!"/>

<link rel="shortcut icon" href="{{ absolute_url('favicon.png') }}">
<img src="{{ email.image((absolute_url(asset('@v_images')) ~ /user-'~user.id~'/v.jpg) | imagine_filter('v_watermark')) }}">
twig:
  globals:
    app_base_url: '127.0.0.1:8000' // Put your base url here
<img src="{{ email.image(app_base_url ~ asset('@v_images') ~ /user-'~user.id~'/v.jpg) | imagine_filter('v_watermark')) }}">
parameters:
   app.base_url: 'https://127.0.0.1:8000/'
parameters:
   app.base_url: 'https://ecommerce.hanff.lu/'
twig:
  globals:
    app_base_url: '%app.base_url%'