1

我在作业队列中嵌入图像有一个奇怪的问题。
我正在使用 WAMP 进行开发。我的项目的文件夹结构是 C:\wamp\MyProject & 公共目录在 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">

当我运行它时这工作正常,但是当我将驱动程序从“同步”更改为“数据库”并更新邮件功能时,如下所示:

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']);
});

当我运行上述程序时,我可以在我的工作表中看到数据条目。但是当我执行命令时: php artisan queue:work 它作为异常抛出

[错误异常]
fopen(assets/images/logo.png):打开流失败:没有这样的文件或目录

如果我删除图像,它会起到魅力的作用。现在我想知道为什么它在不使用作业队列的情况下无法找到图像,它可以找到图像并将其嵌入到邮件中。它应该按需要工作。
对此的任何帮助,将不胜感激。

4

1 回答 1

2

改变

<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 的辅助类之一。官方文档

它会工作正常..

于 2016-09-03T07:19:04.273 回答