我在本地机器上使用 Laravel 6.0.3 版设置了一个站点。
我运行了这个命令:
php artisan storage:link
并已将图像文件“black.png”上传到我的网站。
上传效果很好,文件相对于 root 存在于:
存储/应用/帖子/KiL8ZKWQIq3CK8ecd4CDVZHACFHlUsMAyq8h0AJj.png
但是,当我使用资产功能时
$image = "posts/KiL8ZKWQIq3CK8ecd4CDVZHACFHlUsMAyq8h0AJj.png";
assets($image);
它输出图像的以下链接:
http://cms.test/posts/KiL8ZKWQIq3CK8ecd4CDVZHACFHlUsMAyq8h0AJj.png
这不会给出 404 错误。访问时是一个空白页面。
我会错过什么?
编辑:
如果我尝试使用:
{{ asset('storage/posts/KiL8ZKWQIq3CK8ecd4CDVZHACFHlUsMAyq8h0AJj.png') }}
然后,当我加载页面时,URL 处的图像出现 404 错误:
http://cms.test/storage/posts/KiL8ZKWQIq3CK8ecd4CDVZHACFHlUsMAyq8h0AJj.png
同样,如果我尝试:
{{ asset('storage/app/posts/KiL8ZKWQIq3CK8ecd4CDVZHACFHlUsMAyq8h0AJj.png') }}
我还收到 URL 的 404 错误: http://cms.test/storage/app/posts/KiL8ZKWQIq3CK8ecd4CDVZHACFHlUsMAyq8h0AJj.png
返回初始代码后网络调试窗口中的响应:
$image = "posts/KiL8ZKWQIq3CK8ecd4CDVZHACFHlUsMAyq8h0AJj.png";
assets($image);
显示来自资产的 200 状态响应代码。
最终编辑:
按照 ceejayoz 的指示,我做了两个重要的调整。首先在 config/filesystems.php 我更改了一个局部变量:
'root' => storage_path('app/public'),
在我的模板调用中,我使用了:
{{ asset('storage/' . $image) }}"
现在它可以工作了。