Laravel,在作业队列中嵌入图像时出现问题
Laravel, issue with embedding image in job queue
我在作业队列中嵌入图像时遇到一个奇怪的问题。
我正在使用 WAMP 进行开发。
我的项目的文件夹结构是
C:\wamp\MyProject
& public 目录位于
C:\wamp\www\app
Mail::send('emails.mailtemplate_rule', ['body' => $data['body']], function ($message) use ($data) {
$message->to($data['to']);
$message->from($data['from'], $data['namefrom']);
$message->subject($data['subject']);
});
<img src="{{ $message->embed('assets/images/logo.png')}}" alt='MyProject' data-default="placeholder" data-max-width="300">
这在我 运行 时工作正常,但是当我将驱动程序从 'sync' 更改为 'database' 并更新邮件功能时,如下所示:
Mail::queue('emails.mailtemplate_template', ['body' => $data['body']], function ($message) use ($data) {
$message->to($data['to']);
$message->from($data['from'], $data['namefrom']);
$message->subject($data['subject']);
});
当我 运行 以上时,我可以在我的作业中看到数据条目 table。
但是当我执行命令时:php artisan queue:work
它作为异常抛出
[Error Exception]
fopen(assets/images/logo.png): failed to open stream: No such file or directory
如果我删除图像,它会很有用。
现在我想知道为什么它在不使用作业队列的情况下找不到图像,但它可以找到图像并将其嵌入到邮件中。
它应该按预期工作。
如有任何帮助,我们将不胜感激。
改变
<img src="{{ $message->embed('assets/images/logo.png')}}" alt='MyProject' data-default="placeholder" data-max-width="300">
到
<img src="{{ $message->embed(asset('images/logo.png'))}}" alt='MyProject' data-default="placeholder" data-max-width="300">
asset()
是laravel的帮手class之一。 Official Documentation
它会很好地工作..
我在作业队列中嵌入图像时遇到一个奇怪的问题。
我正在使用 WAMP 进行开发。
我的项目的文件夹结构是
C:\wamp\MyProject
& public 目录位于
C:\wamp\www\app
Mail::send('emails.mailtemplate_rule', ['body' => $data['body']], function ($message) use ($data) {
$message->to($data['to']);
$message->from($data['from'], $data['namefrom']);
$message->subject($data['subject']);
});
<img src="{{ $message->embed('assets/images/logo.png')}}" alt='MyProject' data-default="placeholder" data-max-width="300">
这在我 运行 时工作正常,但是当我将驱动程序从 'sync' 更改为 'database' 并更新邮件功能时,如下所示:
Mail::queue('emails.mailtemplate_template', ['body' => $data['body']], function ($message) use ($data) {
$message->to($data['to']);
$message->from($data['from'], $data['namefrom']);
$message->subject($data['subject']);
});
当我 运行 以上时,我可以在我的作业中看到数据条目 table。
但是当我执行命令时:php artisan queue:work
它作为异常抛出
[Error Exception]
fopen(assets/images/logo.png): failed to open stream: No such file or directory
如果我删除图像,它会很有用。
现在我想知道为什么它在不使用作业队列的情况下找不到图像,但它可以找到图像并将其嵌入到邮件中。
它应该按预期工作。
如有任何帮助,我们将不胜感激。
改变
<img src="{{ $message->embed('assets/images/logo.png')}}" alt='MyProject' data-default="placeholder" data-max-width="300">
到
<img src="{{ $message->embed(asset('images/logo.png'))}}" alt='MyProject' data-default="placeholder" data-max-width="300">
asset()
是laravel的帮手class之一。 Official Documentation
它会很好地工作..