亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Symfony Mailer 在 Twig 的模板化電子郵件中嵌入 Webpack 資產

使用 Symfony Mailer 在 Twig 的模板化電子郵件中嵌入 Webpack 資產

翻過高山走不出你 2022-01-23 10:46:32
Symfony 的郵件文檔說可以輕松嵌入圖像:<img    src="{{ email.image('@images/logo.png') }}"    alt="Logo">但是,我的所有資產都是由 Webpack 和 Encore 構建的。我也使用資產清單文件,因為每個資產的名稱中都有一個 chunkhash。在這種情況下如何使用 Twig 嵌入圖像?我試過:<img    src="{{ email.image(asset('build/images/logo.png')) }}"    alt="Logo">但這不起作用。我最終得到一個例外,即“缺少模板”。如果我使用來自靜態位置的圖像,這當然效果很好。
查看完整描述

2 回答

?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

正如文檔所說:定義一個 Twig 命名空間,該命名空間指向存儲圖像的任何目錄,例如:


# config/packages/twig.yaml

twig:

    paths:

        # point this wherever your images live

        public/build/: build

接下來,在您的電子郵件模板中:


{# '@build/' refers to the Twig namespace defined earlier #}

<img src="{{ email.image('@build/logo.png') }}" alt="Logo">

<img src="{{ email.image('@build/subdir/logo.png') }}" alt="Logo">

如果構建的圖像有一些隨機后綴,這將不起作用,例如在配置文件.enableVersioning()中定義的時候。webpack.config.js


如果您啟用了版本控制策略,您可以執行以下操作:


# config/packages/twig.yaml

twig:

    paths:

        public/: public

并使用字符串 concat 運算符構建模板名稱~:


{# '@public' refers to the Twig namespace defined earlier #}

<img src="{{ email.image('@public' ~ asset('build/logo.png')) }}" alt="Logo">


查看完整回答
反對 回復 2022-01-23
?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

有兩種方法可以在郵件中獲取圖像。第一個是嵌入的圖像,第二個只是指向網絡上某處圖像的鏈接。如果要嵌入圖像,則必須將圖像附加到郵件中:


$attachment = Swift_Image::newInstance($data, $filename, $mimeType)

    ->setDisposition('inline');


$cid = $message->embed($attachment); // Generates "cid:something"

重要的是像這樣顯示您的圖像:


<img src="cid:something" ... />

所以你必須像這樣渲染你的模板:


$twig->render('email/email.html.twig', [

    'cid' => $cid,

    ...

]);

在你的樹枝模板中:


<img src="{{ cid }}" ... />


查看完整回答
反對 回復 2022-01-23
  • 2 回答
  • 0 關注
  • 250 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號