You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 5.8如何显示public目录图片?执行storage:link仍无法展示怎么办

问题排查与解决步骤

默认执行php artisan storage:link生成的软链接,只会将项目根目录下的public/storage指向storage/app/public路径,你的图片存储在storage/app/uploads,不在默认映射的路径范围内,这是最核心的问题。

方案1:调整图片存储路径(推荐)

  • 修改文件上传逻辑,将上传的图片存储到storage/app/public/uploads目录下
  • 确保$post->image字段存储的是类似uploads/xxx.jpg的相对路径,你现有的Blade代码无需修改即可正常访问

方案2:自定义软链接映射

如果你需要保留storage/app/uploads的存储路径,可手动修改软链接配置:

  • 打开项目config/filesystems.php文件,找到links配置项,新增一行映射规则:
'links' => [
    public_path('storage') => storage_path('app/public'),
    public_path('uploads') => storage_path('app/uploads'),
],
  • 重新执行php artisan storage:link命令生成新的软链接
  • 修改Blade模板里的图片路径为:
<img class="w-100" src="/uploads/{{ $post->image }}">

其他常见问题排查

  • 检查目录权限:Linux环境下需给storage目录设置web服务器可访问的权限,可执行chmod -R 755 storage、chown -R www-data:www-data storage(根据实际运行的web服务用户调整用户组参数)
  • 检查路径拼接是否正确:确认$post->image没有多余的斜杠前缀,避免拼接后出现/storage//uploads/xxx.jpg这类错误路径
  • 本地开发环境如果用php artisan serve启动的服务,修改软链接后重启服务即可生效
  • Apache服务需确认public目录下的.htaccess文件存在,重写规则正常开启,没有屏蔽静态资源访问
  • 直接在浏览器地址栏输入完整的图片路径测试,返回404说明路径映射错误,返回403说明权限配置错误

内容的提问来源于stack exchange,提问作者codeninja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 07:39:07