我在laravel中有一个项目,其中一个部分将图像上传到服务器。使用文件存储并在/ storage / app / public文件夹中保存图像。 在本地工作正常,图像看起来不错,但是当我将项目上传到heroku时,图像看不到。 即使在heroku中运行命令" php artisan storage:link"
为什么我看不到图像?我不想为此使用AWS S3。 我能错过什么?
谢谢..
答案 0 :(得分:1)
Heroku没有文件存储空间。因此,如果您要将其用于服务器,则需要找出另一种存储文件的方法。
答案 1 :(得分:0)
在你的composer.json中添加:
" post-install-cmd":[ " ln -sr storage / app / public public / storage" ],
答案 2 :(得分:0)
您还可以将图像上传到公用文件夹而不是存储文件夹(通过这种方式,您将不会遇到上述问题)。
为此,您需要在app/filesystem.php
更改
'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
变量插入数据库了!
答案 3 :(得分:0)
在您的composer.json
中添加:
"post-install-cmd": [
"ln -sr storage/app/public public/storage"
]
答案 4 :(得分:0)