У меня есть проект в laravel, один из разделов которого загружает изображения на сервер. Изображения сохраняются с помощью Файлового хранилища и в папке / storage / app / public.
В локальных работает корректно, изображения выглядят хорошо, но когда я загружаю проект в heroku, изображения не видны.
Даже в героку запускаю команду «php artisan storage: link»
Почему я не вижу изображения? Я не хотел бы использовать AWS S3 для этого.
Что я мог пропустить?
Спасибо..
Героку не имеет файлового хранилища. Поэтому, если вы собираетесь использовать его для своих серверов, вам нужно найти другой способ хранения файлов.
В ваш composer.json добавьте:
«post-install-cmd»: [
«ln -sr storage / app / public public / storage»],
Также Вы можете загружать изображения в общую папку вместо папки хранения (таким образом, у вас не будет проблем, как описано выше).
Для этого вам нужно изменить конфиг в 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
переменная в БД!