Laravel如何显示根目录外的图片?符号链接配置问题求助
实现步骤
1 修正配置笔误
你当前filesystems.php中的communication磁盘配置存在语法错误,driver字段前缺失单引号,先修正为:
'communication' => [ 'driver' => 'local', 'root' => '/var/www/communication', ],
2 新增软链映射配置
在filesystems.php的links数组中新增软链规则,直接将外部目录映射到项目public目录下的可访问路径即可,不需要链接到app/public:
'links' => [ public_path('storage') => storage_path('app/public'), // 新增规则:public/communication 软链指向外部目录 /var/www/communication public_path('communication') => '/var/www/communication', ],
3 生成软链
在项目根目录下执行Laravel自带的软链生成命令即可:php artisan storage:link
执行完成后就可以正常访问外部目录的资源了,比如/var/www/communication/a.png的访问地址为你的站点域名/communication/a.png。
注意事项
- 需确保Web服务器运行用户(通常为www-data)对
/var/www/communication目录持有读权限,否则会返回403权限错误 - 若使用Windows环境,需要以管理员身份运行上述artisan命令才能正常生成软链
- 也可以手动执行命令生成软链,效果完全一致,Linux/macOS下命令为:
ln -s /var/www/communication /你的项目根目录/public/communication
内容的提问来源于stack exchange,提问作者cooper
相关产品推荐
相关产品推荐

