Laravel中同一视图目录下home页可显图片,post页无法显示求助
排查方向参考
兄弟,我之前也碰到过这种同格式代码在不同页面显示异常的情况,结合你说的变量、文件都没问题的前提,大概率是这几个细节出了问题,你挨个排查下:
路径格式与路由层级问题
你代码里用的是反斜杠\,Web环境里标准路径应该用正斜杠/。更关键的是,如果post页面是在子路由(比如/post/123)下,用相对路径会自动拼接当前路由前缀,变成/post/storage/file_uploads/xxx,自然找不到文件。
建议直接用Laravel的asset()辅助函数生成绝对路径,这样不管页面在哪个路由下都不会错:<img src="{{ asset('storage/file_uploads/' . $post->id) }}">文件名后缀是否一致
虽然你确认文件存在,但有没有可能home页面的$item->id其实带了文件后缀(比如1.jpg),而$post->id只是纯数字?去storage/app/public/file_uploads/目录下核对下文件名,确保和你引用的完全一致,包括后缀名。视图缓存残留
有时候Laravel的视图缓存会保留旧的路径逻辑,导致新代码不生效。执行下面的命令清一下视图缓存试试:php artisan view:clear符号链接或权限异常
虽然你执行过storage:link,但可以再确认下:- 看看
public/storage是不是真的指向了../storage/app/public的符号链接(Windows下可能需要管理员权限创建,Linux下要确保链接没被误删除) - 如果是Linux服务器,检查
storage/app/public/file_uploads目录和文件的权限,确保运行Web服务的用户(比如www-data)有读写权限,执行这个命令试试:chown -R www-data:www-data storage/ public/storage
- 看看
内容的提问来源于stack exchange,提问作者LaravelNewbie
相关产品推荐
相关产品推荐

