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">
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 }}" ... />
添加回答
舉報
