اذهب إلى المحتوى

السؤال

نشر

انا بعمل مشروع ب node.js & express.js و استعملت multer عشان احفظ صوره ال user لما يعمل register و بتتحفظ علي ال local host صح و بتتعرض صح المشكله بتيجي لما الكلام ده يحصل علي السيرفر digitalocean ساعتها باجي اعمل get لل endpoint اللي هتجيب صوره معينه هنا بقي ساعات بتشتغل و الصوره تتعرض و ساعات السيرفر ميعرفش يجيب الصوره و الاقي error 404

barber-backend-master2.zip

Recommended Posts

  • 0
نشر

مرحباً مؤمن ،

المشكلة التي تواجهها تتعلق بإعدادات السيرفر على DigitalOcean وطريقة الوصول إلى الملفات المخزنة ، لذلك من الصعب مساعدتك مع عدم وصولنا للسيرفر الخاص بك على DigitalOcean ، لكن مثل هذه المشكلة ربما تكون بسبب عدم توافق طريقة الحفظ على السيرفر

  • عند استخدام multer، الصور يتم حفظها في ملف معين على السيرفر. تحتاج إلى التأكد من أن Express يقوم بخدمة الملفات الثابتة من هذا المسار (static path). أضف الكود التالي في ملف app.js أو index.js الخاص بك :
    const path = require('path');
    
    app.use('/uploads', express.static(path.join(__dirname, 'uploads')));

    هذا سيجعل الملفات الموجودة في مجلد uploads  ، وبالتالي يمكنك الوصول إليها بالشكل التالي

    /uploads/<filename>

في حال لم ينجح الأمر ، جرب تتبع عنوان URL عند طلب الصورة ، وتحقق من وجود الصورة في الرابط او أنه يتم استخدام رابط بشكل خطأ.

  • 0
نشر
بتاريخ 3 دقائق مضت قال Hikmat Jaafer:

مرحباً مؤمن ،

المشكلة التي تواجهها تتعلق بإعدادات السيرفر على DigitalOcean وطريقة الوصول إلى الملفات المخزنة ، لذلك من الصعب مساعدتك مع عدم وصولنا للسيرفر الخاص بك على DigitalOcean ، لكن مثل هذه المشكلة ربما تكون بسبب عدم توافق طريقة الحفظ على السيرفر

  • عند استخدام multer، الصور يتم حفظها في ملف معين على السيرفر. تحتاج إلى التأكد من أن Express يقوم بخدمة الملفات الثابتة من هذا المسار (static path). أضف الكود التالي في ملف app.js أو index.js الخاص بك :
    const path = require('path');
    
    app.use('/uploads', express.static(path.join(__dirname, 'uploads')));

    هذا سيجعل الملفات الموجودة في مجلد uploads  ، وبالتالي يمكنك الوصول إليها بالشكل التالي

    /uploads/<filename>

في حال لم ينجح الأمر ، جرب تتبع عنوان URL عند طلب الصورة ، وتحقق من وجود الصورة في الرابط او أنه يتم استخدام رابط بشكل خطأ.

ده فعلا اللي انا عملته ممكن تجرب من ال url ده هيتلاقي الصوره لما تيجي تطلب ال url كذا مره الصوره مره هتيجي و مره مش هتيجي https://coral-app-3s2ln.ondigitalocean.app/users/1733063730601.jpg

  • 0
نشر
بتاريخ 59 دقائق مضت قال Moamen Ramy Rahmo:

ده فعلا اللي انا عملته ممكن تجرب من ال url ده هيتلاقي الصوره لما تيجي تطلب ال url كذا مره الصوره مره هتيجي و مره مش هتيجي https://coral-app-3s2ln.ondigitalocean.app/users/1733063730601.jpg

هل تقوم بإستخدام إعدادات تحتوي على أكثر من خادم (scaled instances) أو Load Balancer ؟

إذا كان كذلك فالسبب هو أنه يتم رفع الصورة على أحد الخوادم فقط ولكن عند طلب الصورة يتم توجيه الطلب إلى خادم آخر لا يحتوي على الصورة لهذا مرات كثيرة تظهر الصورة ومرات أخرى لا تظهر وهذا بسبب أن المرات التي تظهر فيها الخادم الذي يوجد به الصورة هو الذي إستقبل الطلب . ولهذا يمكنك إيقاف تلك الخاصية مؤقتا وأنظر هل يتم حل المشكلة أم لا .

يمكنك تجربة وضع صورة ثابته لديك في المشروع ووضع مسار خاص بها وقم برفعها على السيرفر واذهب إلى المسار وانظر هل تظهر تلك المشكلة أم لا . إذا لم تظهر فكما أخبرتك يبدوا أنك تستخدم الخوادم الموزعة .

  • 0
نشر
بتاريخ منذ ساعة مضت قال Moamen Ramy Rahmo:

ه فعلا اللي انا عملته ممكن تجرب من ال url ده هيتلاقي الصوره لما تيجي تطلب ال url كذا مره الصوره مره هتيجي و مره مش هتيجي

رأيت هذه الأخطاء في console عند محاولة جلب الصورة

image.thumb.png.3df35e2cf8daf4bb092aa48bff3a479d.png

قم بالتأكد من أن النطاق الرئيسي متطابق مع النطاق الفرعي ومن أنك قد أضفت إعدادات تخزين مؤقت (Cache-Control) لتجنب المشكلات.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...