我在laravel中有一个项目,其中一个部分上传图像到服务器。图像通过使用文件存储保存在/ storage / app / public文件夹中。在本地工作正常,图像看起来很好,但当我上传项目到heroku时,图像看不到。即使在heroku中运行命令“php artisan storage:链接”为什么我看不到图像?我不想用AWS S3来做这个。我会错过什么呢?谢谢你,谢谢你
nom7f22z1#
另外,您也可以将图片上传到公共文件夹而不是存储文件夹,这样您就不会遇到上述问题。更改自:
'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_URL').'/storage', 'visibility' => 'public', ],
变更为:
'public' => [ 'driver' => 'local', 'root' => public_path(), 'url' => env('APP_URL').'/public', 'visibility' => 'public', ],
您可以存储文件,以便:
$pathToFile = Storage::disk('public')->put('uploads/', $file);
现在您可以将$pathToFile变量插入数据库!
$pathToFile
wfypjpf42#
在composer.json中添加:“安装后命令”:[“ln -sr存储/应用程序/公共公共/存储”]、
omhiaaxx3#
Heroku没有文件存储功能,所以如果你想把它用在服务器上,你需要找到另一种存储文件的方法。
gupuwyp24#
我所做的对我有用的事情:在composer.json中添加:"post-install-cmd": [ "ln -sr storage/app/public public/storage" ],(如果在上面的命令后还有其他行,请不要忘记逗号,)但是您应该在脚本部分添加上面的行。
"post-install-cmd": [ "ln -sr storage/app/public public/storage" ],
,
wqsoz72f5#
此外,您还需要运行以下命令:
php artisan storage:link
在运行此命令之前,请检查存储文件夹是否已存在或不在公用文件夹中。如果存在,请将其重命名为storage-bk并运行此命令。这样,它将创建新的快捷方式文件夹存储(storage/app/public)。
v1l68za46#
这对我很有效:您可以将添加到Procfile中的命令行。worker: php artisan storage:link添加后,请再次将您的项目推到Heroku。
worker: php artisan storage:link
6条答案
按热度按时间nom7f22z1#
另外,您也可以将图片上传到公共文件夹而不是存储文件夹,这样您就不会遇到上述问题。
更改自:
变更为:
您可以存储文件,以便:
现在您可以将
$pathToFile
变量插入数据库!wfypjpf42#
在composer.json中添加:
“安装后命令”:[“ln -sr存储/应用程序/公共公共/存储”]、
omhiaaxx3#
Heroku没有文件存储功能,所以如果你想把它用在服务器上,你需要找到另一种存储文件的方法。
gupuwyp24#
我所做的对我有用的事情:
在composer.json中添加:
"post-install-cmd": [ "ln -sr storage/app/public public/storage" ],
(如果在上面的命令后还有其他行,请不要忘记逗号,
)但是您应该在脚本部分添加上面的行。wqsoz72f5#
此外,您还需要运行以下命令:
在运行此命令之前,请检查存储文件夹是否已存在或不在公用文件夹中。如果存在,请将其重命名为storage-bk并运行此命令。这样,它将创建新的快捷方式文件夹存储(storage/app/public)。
v1l68za46#
这对我很有效:您可以将添加到Procfile中的命令行。
worker: php artisan storage:link
添加后,请再次将您的项目推到Heroku。