在将作业队列中的图像嵌入时,我遇到了一个奇怪的问题 我正在使用WAMP进行开发。 我的项目的文件夹结构是 的 C:\瓦帕\ MyProject的 &安培;公共目录位于 的 C:\瓦帕\ WWW \应用
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']);
});
当我运行上述内容时,我可以在作业表中看到数据条目。
但是当我执行命令时:php artisan queue:work
它抛出的异常是
[错误例外]
fopen(assets / images / logo.png):无法打开流:没有这样的文件或目录
如果我删除图像,它就可以作为一个魅力。 现在我想知道为什么它不能找到图像而不使用作业队列它可以找到图像&amp;将它嵌入邮件中。 它应该按照要求工作 对此有任何帮助,将不胜感激。
答案 0 :(得分:2)
变化
router.get('/:id', (req, res) => {
Article.query({
where: {id: req.params.id}
}).fetch().then(article => {
res.json(article)
})
})
到
<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">
是laravel的辅助类之一。 Official Documentation
它会正常工作..