首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用liip imagine_filter的Symfony 5 Mailer嵌入式图像

使用liip imagine_filter的Symfony 5 Mailer嵌入式图像
EN

Stack Overflow用户
提问于 2021-04-22 14:55:02
回答 1查看 536关注 0票数 3

在Symfony 5项目中,使用Mailer ()函数创建电子邮件。在使用的小枝模板($templatedEmail->htmlTemplate(..))中将图像嵌入到

代码语言:javascript
复制
<img src="{{ email.image('@v_images/user-'~user.id~'/v.jpg') }}">

若要包含特定于用户的图像,请执行以下操作。这个很好用。当试图将该图像传递给liip过滤器时

代码语言:javascript
复制
<img src="{{ email.image('@v_images/user-'~user.id~'/v.jpg') | imagine_filter('v_watermark') }}">

图像不再渲染了。我在考虑要应用的解析器设置,以使liip能够从非标准目标路径中读取-但没有找到任何合理的设置。文件没有给我带来任何有用的信息。对于如何使liip与Mailer嵌入式图像一起工作的任何提示,我都有很大的帮助。

编辑(谢谢@ArleighHix):

我还尝试在调用中嵌套过滤器,如

代码语言:javascript
复制
<img src="{{ email.image('@v_images/user-'~user.id~'/v.jpg' | imagine_filter('v_watermark')) }}">

导致以下错误:

代码语言:javascript
复制
Unable to find template "@v_images/user-1https:/127.0.0.1:8000/media/cache/resolve/v_watermark/v.jpg" (looked into: [SENSIBLE_LOCAL_PATH_IN_PROJECT]).

我不知道到底发生了什么,但这条路似乎被奇怪地连在一起.

EN

回答 1

Stack Overflow用户

发布于 2021-04-23 10:57:39

我认为您应该将url()资产()结合使用。

基于这个文档

如果资产需要绝对URL,请使用absolute_url() Twig

代码语言:javascript
复制
<img src="{{ absolute_url(asset('images/logo.png')) }}" alt="Symfony!"/>

<link rel="shortcut icon" href="{{ absolute_url('favicon.png') }}">

解决方案1

我认为这个应该有效:

代码语言:javascript
复制
<img src="{{ email.image((absolute_url(asset('@v_images')) ~ /user-'~user.id~'/v.jpg) | imagine_filter('v_watermark')) }}">

解决方案2

如果它不起作用,您应该添加一个带基url的gloabl变量。

twig.yaml

代码语言:javascript
复制
twig:
  globals:
    app_base_url: '127.0.0.1:8000' // Put your base url here

并将其用作:

代码语言:javascript
复制
<img src="{{ email.image(app_base_url ~ asset('@v_images') ~ /user-'~user.id~'/v.jpg) | imagine_filter('v_watermark')) }}">

当然,当你在网上发布你的网站时,base_url会改变。您可以使用服务参数'%app.base_url%'

在配置文件中定义它:

services_dev.yaml

代码语言:javascript
复制
parameters:
   app.base_url: 'https://127.0.0.1:8000/'

services_prod.yaml

代码语言:javascript
复制
parameters:
   app.base_url: 'https://your.website.url/'

然后将您的twig.yaml更新为

代码语言:javascript
复制
twig:
  globals:
    app_base_url: '%app.base_url%'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67215721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档