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

السؤال

Recommended Posts

  • 1
نشر

الصورة تم رفعها بنجاح على الواجهة الخلفية (الخادم) وهذا يعني أن المشكلة ليست في عملية الرفع بل في طريقة عرض الصورة في الواجهة الأمامية (Frontend).
عندما نحصل على اسم الصورة مثل:

url-1744329877173-986064634.png

فهذا مجرد اسم الملف، وليس رابطا كاملا يمكن من خلاله عرض الصورة.
لذلك في ملف مكون BookCards نحتاج إلى تكوين الرابط الكامل للصورة وذلك بإضافة رابط الخادم الذي يحتوي على الصور ثم دمج اسم الصورة معه.
مثلاً:

const API_URL_IMAGES = 'http://localhost:4000/images';

ثم ندمج هذا الرابط مع اسم الصورة بهذا الشكل:

<img src={`${API_URL_IMAGES}/${data.url}`} />

ليكون الرابط النهائي للصورة المطلوب من الخادم هو 

http://localhost:4000/images/url-1744329877173-986064634.png

وبذلك سيتم عرض الصورة بشكل صحيح على  الواجهة الامامية.
وهذا هو ملف المكون BookCards بالكامل بعد التعديل

import React from 'react';
import { Link } from 'react-router-dom';

const API_URL_IMAGES = 'http://localhost:4000/images';

const BookCards = ({ data }) => {
    console.log(data);

    return (
        <>
            <Link>
                <div className="bg-zinc-800 rounded p-4">
                    <div className="bg-zinc-900">
                        <img
                            src={`${API_URL_IMAGES}/${data.url}`}
                            className="h-[25vh]"
                        />
                    </div>
                    <h1>{data.title}</h1>
                </div>
            </Link>
        </>
    );
};
export default BookCards;

ستلاحظ بعد هذا التعديل أن الصورة تظهر بنجاح في الواجهة الأمامية.

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...