من تو لوکال آپلود میتونم بکنم بدون هیچ مشکلی حالا تو هاست اومدم تصویر تو دیتا ذخیره میشه ولی میره قسمت
storage>>app
و منم کد
php artisan storage:link
رو زدم storage
داخل public هست مشکل اینه عکسه تو قسمت app ذخیره میشه ولی تو قسمت public نیست
در فایل config/filesystems.php میتونید تعیین کنید که disk پیش فرضتون چی باشه تا اگر موقع استفاده از Storage بصورت خاص تعیین نکردید از اون استفاده کنه. هر یک از این گزینه ها هم یک root جداگانه دارند. گزینه های اضافه تر هم میتونید خودتون اضافه کنید:
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
//...
],
حالا احتمالا قضیه ای که اتفاق افتاده این هست که حالت disk پیش فرض شما در نسخه لوکال روی public تنظیم شده ولی برای نسخه بارگزاری شدتون مقدار local تنظیم شده. به همین خاطر مقصد بارگزاری فایل هاتون با هم فرق دارند. ( به مقدار FILESYSTEMDISK در فایل env. تون هم توجه کنید)
یک راهکار دیگه هم این هست که موقع استفاده از Storage Facade بصورت خاص disk و محل قرارگیری تون رو تعیین کنید:
Storage::disk('public')->put('file.jpg', $contents);شاید پاسخ شما همینجا باشد
احساس میکنم پیام قبلیم رو درست نخوندید...!
الان دقیقا داره درست رفتار میکنه. چون آدرس اصلی local اگر دقت کنید برابر با storage_path('app') تعریف شده. اگر میخواید بجای پوشه app داخل app->public قرار بگیره در فایل env. مقدار local رو تغییر بدید به public.
بعد از اعمال تغییرات اگر قبل کانفیگ هاتون رو cache کردید لازمه که با یکی از دستورات زیر کش رو پاک کنید تا تغییرات اعمال بشن:
php artisan config:clear
php artisan optimize