[英]image not displaying in mail in queue - laravel
在我的邮件模板中,我使用了如下图像路径:
<img src="{{ URL::to('/images/logo.png') }}" alt="logo" download="false" style="width:50%">
它适用于普通邮件(没有队列),但不适用于队列中的邮件。
通过检查邮件中的元素,我发现正常邮件图像路径如下:
https://app.site_domain.com/images/logo.png //as expected
但对于邮件队列,它是:
http://localhost/images/logo.png
您必须为您的应用程序设置一个 URL 以便控制台命令知道什么 URL 用于您的应用程序 URL 没有将信息传递给它的网络服务器生成请求。
为此,您可以在.env
文件中设置APP_URL
。
APP_URL=https://app.site_domain.com
默认情况下,它设置为http://localhost
,这就是显示的原因。
如果您的配置被缓存,您将需要清除它或再次缓存它:
php artisan config:cache
您最有可能需要停止队列工作人员,(在处理任何当前作业后使队列工作人员死亡的命令):
php artisan queue:restart
然后你可以再次启动它们,或者希望你有监控这些进程的东西,并在它们死后重新启动它们。
使用public_path()
代替url()
或assets()
。 public_path()
正在为我工作。
尝试。 asset()
<img src="{{ asset('images/logo.png') }}" alt="logo" download="false" style="width:50%">
尝试像这样使用url
助手: {{ url('/images/logo.png') }}
<img src="{{ $message->embed($pathToImage) }}">
而不是 URL如果您在队列工作程序运行时已将 .env 从 localhost 更新为 app.site_domain.com,您可能需要重新启动主管/工作人员队列。 清除和重新缓存配置不会更新主管中的设置(当然,如果您使用主管来管理队列)。
您没有从本地获取图像。您应该将此图像上传到服务器。然后提供该服务器图像链接。 现在您可以在 email 上获取此图像。 您可以使用图像进行检查。 或尝试使用 embed($pathToImage) }}">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.