借助Orchid Laravel库上传图片遇路径配置问题求助
问题描述
我正尝试从存储中上传图片并插入至表格内,尝试了多种图片路径写法但均未生效,开发环境为WSL。
现有代码示例
TD::make('image', 'Картинка')->render(function (News $news){ return "<img src="{asset($news->image)}""; return asset($news->image); }),
问题截图


解决方案
- 修复字符串拼接语法错误
代码里存在引号嵌套错误,且两个return语句只会执行第一个,正确写法:
TD::make('image', 'Картинка')->render(function (News $news) { // 基于存储的相对路径生成访问URL $imageUrl = asset('storage/' . $news->image); return "<img src='{$imageUrl}' alt='新闻图片' />"; }),
- 创建存储软链接
Laravel需通过软链接访问storage/app/public下的文件,在WSL终端执行:
php artisan storage:link
执行后public/storage会链接到storage/app/public,确保asset('storage/xxx')能正确指向文件。
- 验证图片存储路径
- 确认
$news->image存储的是storage/app/public下的相对路径(如news/xxx.jpg),而非绝对路径或完整URL - 检查文件是否实际存在于对应目录,比如
storage/app/public/news/xxx.jpg
- 修复WSL目录权限
避免因权限问题无法读取文件,在WSL终端执行:
chmod -R 755 storage/ chown -R www-data:www-data storage/
内容的提问来源于stack exchange,提问作者Андрей Двойкин
相关产品推荐
相关产品推荐

