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