سلام دوستان
من یک سایت لاراولی رو روی هاست گذاشتم و هنگام ذخیره عکس با ارور Can't write image data to path یا Unable write image data to path رو برو میشم درحالی که رو لوکال ایراد ندارم. من سایتم رو روی لیارا بالا آوردم. مشکل چیه به نظرتون؟
@magicaldev1
@endworld
@mamadyaqa
@BahmanMD
@alekasirabolfazl
@shift.delete
@paradox
@mhyeganeh
@ali.bayat
@PWR
@s.aerospace
سلام تو پوشه config و filesystems مسیر فایل رو تغییر بدید
مثلا روی لوکال به این شکل هست
'images' => [
'driver' => 'local',
'root' => base_path() . '/public/images',
'url' => env('APP_URL').'/images',
],
روی هاست باید به این شکل مسیردهی کنید
'images' => [
'driver' => 'local',
'root' => base_path() . '/' . '/public_html/images',
//or
// 'root' => base_path() . '/' . '/public/images',
'url' => env('APP_URL').'/images',
],
میتونه مشکل مربوط به عدم تنظیم صحیح Permission فایل ها باشه. پیشنهاد میشه سطح دسترسی پوشه storage رو روی 755 یا ۷۷۵ تنظیم کنید.
یک دلیل رایج دیگه اش مخصوصا موقع استفاده از پکیج image intervention هم اینه که پوشه ای که برای ذخیره سازی بهش رفرنس دادید ساخته نشده هنوز. یک بررسی بکنید و اگر اینطور بود قبلش بصورت دستی فولدر رو ایجاد بکنید.
ممکنه بفرمایید که شما در پروژه اصلیتون از لینک کردن (php artisan storage link) استفاده میکنید یا خیر؟
چون لیارا وقتی داره داکر فایل رو اجرا میکنه به طور پیشفرض این کار رو میکنه و لازمه پوشه ذخیره سازی شما storage باشه تا بعد از لینک کردن به درستی کار کنه .
@mhyeganeh
@eghbal1377
ممنونم از پاسختون
من از php artisan storage link استفاده نکردم. مشکل ای بود که توی لیارا باید دیسک متصل میکردم که از حالت read only خارج بشه.
حالا با دیدن کامنت های شما این سوال برام پیش اومد که آیا کار درستی هست که عکسها همه توی public هستند؟ البته چیزی ندارم که بخوام دسترسی ندم بهش. و اینکه اگر در آینده تصمیم بگیرم ببرم توی storage کار ساده ای هست؟
به نظرم بهتر و منطقی تره که فایل ها و تصاویری که در قالب وبسایت بهشون نیاز دارید مثل لوگو و بنرها و .... در public باشند و فایل ها و تصاویر و ... که توسط کاربران (چه ادمین و چه کاربران عادی) بارگزاری میشن داخل storage ذخیره شوند و بعد برای استفاده ازشون هم از دستورات Storage Facade استفاده کنید.
اینجوری کدتون خیلی مرتب تر و scale پذیرتر خواهد بود و دستتون برای اقدامات آینده باز تره. یعنی مثلا هر وقت احساس کردید حجمشون خیلی زیاد شده، تنها با چند خط تغییرات خیلی راحت و بدون دردسر میتونید به یک فضای ابری مثل Storage ابرآروان سوییچ کنید و تمام. لازم نیست خیلی کدهاتون رو ویرایش کنید.
ولی از نظر فنی و در صورتی که اشکالی نداره که همه فایل هاتون در دسترس عموم باشند، ذخیره سازیشون در public هم مشکل خاصی ایجاد نمیکنه و انتقال دادنش در آینده هم خیلی کار دشواری محسوب نمیشه. (گرچه به نحوه کدنویسیتون هم خیلی بستگی داره طبیعتا)
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟