当我在本地工作时,我可以将文件保存在存储中,它们会自动显示在public/storage
目录中。现在我已将同一项目转移到共享服务器,但存储似乎与public/storage
目录不同步。
这是我存储文件的方式:
$path = 'app/public/images';
$img->save(storage_path($path.'/photo.jpg'));
这就是我检索它的方式:
Storage::url('public/images/photo.jpg);
注意:我在本地使用php artisan storage:link
链接了存储空间,我不知道是否需要再次执行此操作(如果可能,这可能会很困难,因为我在共享主机上)现在我在不同的服务器上。
答案 0 :(得分:0)
我在共享主机上部署了一些项目,我发现了相同的错误,并且带有路径的商店图片的问题是因为索引根在共享托管中不同。你可以像这样解决:
$my_public = 'home/username/public_thml/your_project_laravel/'
$path = 'app/public/images';
$img->save($my_public.$path.'/photo.jpg'));
您需要指定共享托管的路径,其他方式是更改共享托管中的公共html的根目录,但它会更改您帐户中的所有引用路径,如果您在同一主机中的其他网站不是好的解决方案。
答案 1 :(得分:0)
我所要做的就是对存储目录进行符号链接。但是,我无法使用php artisan storage:link
,因为我的主机不支持SSH。相反,我使用了this solution。