我有一个 Laravel 5.2 应用程序,当用户购买产品时它会发送几封电子邮件。电子邮件视图包含对一些图像的引用,如下所示:
<img src="{{ asset($purchase->image) }}">
这在我拥有的所有 3 个环境中都运行良好 - 本地、登台和生产。asset()
使用每个环境中配置的 APP_URL 正确构建适当图像的完全限定 URL。
我决定改用Laravel 队列 https://laravel.com/docs/5.2/queues发送电子邮件。
并进行了测试购买。该过程有效,邮件已发送,但已发送电子邮件中的图像 URL 错误。看来我配置的 APP_URL 没有被获取。
.env
APP_URL=http://localhost/path/to/app
配置/应用程序.php
'url' => env('APP_URL', 'http://localhost'),
网址asset()
我的电子邮件中生成的是:
http://localhost/images/foo.jpg
这是不正确的,它们应该是:
http://localhost/path/to/app/images/foo.jpg
看起来像使用队列APP_URL
定义在我的.env
没有看到,所以默认的http://localhost
用来。不使用队列,相同的代码可以正常工作。
我唯一能想到的是处理队列的 CLI PHP 环境与 Apache PHP 环境有些不同,但我无法想象会导致什么差异.env
被忽视。
我找到了一个类似的问题 https://stackoverflow.com/questions/26041896/laravel-4-2-emailqueue-with-assets来自 2 年前使用 Laravel 4.2 的人,没有答案。我找到了一些其他类似的参考资料,但没有解决方案。有人看过这个或者有什么建议吗?