درود خوبی
ببین وقتی شما فایلهای پوشه storage
ذخیره میکنی این فایلها به صورت پیشفرض در دسترس نیستن و برای عموم کاربران قابل دسترسی نیست برای اینکه فایلها در پوشه storage
به صورت عمومی قابل دسترسی باشه باید یک لینک عمومی (public link) برای آنها ایجاد بشه
برای این منظور، میتونی از دستور php artisan storage:link
توی Laravel استفاده کنی این دستور یک لینک سمبولیک از پوشه public/storage
به پوشه storage/app/public
ایجاد میکند. با این کار، فایلهای موجود در پوشه storage/app/public
از طریق لینک public/storage
قابل دسترسی خواهند بود
بعد از اجرای دستور php artisan storage:link
، شما میتوانید به فایلهای موجود در پوشه storage/app/public
از طریق لینک public/storage
دسترسی پیدا کنید. به عنوان مثال، اگر فایلی با نام example.jpg
در پوشه storage/app/public
وجود دارد، شما میتوانید به آن با استفاده از لینک public/storage/example.jpg
دسترسی پیدا کنید.
فقط بعدش وب سرویست رو ریست کن
دوست عزیز این کارو کردم
میدونم
توی لوکال هاست جواب میده
بعد که آپلود میکنم روی سرور دیگه هر چی عکس آپلود میکنم توی storage که توی پابلیک هست قرار نمیگیره
فایل storage که داخل public قرار میگیره باید از نوع Symbolic link باشه. (یه جورایی مثل shortcut ویندوز)
و از خودش موجودیت جداگانه ای نداره. به همین خاطر اصلا معنی نداره که اونجا باشه و اینجا نباشه.
اما اتفاقی که معمولا می افته اینه که موقع آپلود پروژه از لوکال هاست به هاست یا سرور، انتقال symlink به درستی انجام نمیشه و به شکل یک فولدر مستقل آپلود میشه که اشتباه هست.
کاری که باید بکنید اینه که پوشه public/sotrage
رو در هاست کلا حذف کنید.
و بعد دوباره به نحوی دستور php artisan storage:link
رو در هاست بصورت مستقیم اجرا کنید تا symlink ساخته بشه.
دایرکتوری storage به صورت symlink داخل public ایجاد میشه. و وقتی شما پروژه رو zip یا rar میکنید و به داخل هاست انتقال میدید لینک از بین میره. باید storage رو از public حذف کنید و دوباره با storage:link ایجادش کنید. اگه به ترمینال هاست دسترسی داری خب php artisan storage:link بزن اگه نه که با Artisan::call انجام بده
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟