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

它会很好地工作..