Abdelrahman Mostafa10 نشر 31 ديسمبر 2023 أرسل تقرير نشر 31 ديسمبر 2023 أحاول استيراد صورة في Next.js ولكنها تظهر تالفة، ولا أفهم السبب. لدي المسار الصحيح للصورة ولكنها تظهر تالفة، وعند وضع المسار مباشرة في src='../pathimagepath/image.svg' يعمل بشكل جيد، ولكن عندما أقوم بتمريره باستخدام استيراد، لا يعمل. هذا هو الكود الخاص بي: "use client"; import React, { useState } from 'react'; import Logo from '../assets/Logo.svg'; import hamburgerBtn from '../assets/hamburgerBtn'; import '../app/globals.css'; function Navbar() { const [toggle, setToggle] = useState(false); const handleClick = () => setToggle(!toggle); return ( <div className='w-full h-[80px] bg-white'> <div className="2xl:max-w-[1400px] 2xl:px-[0] xl:max-w-[1180px] lg:max-w-[924px] md:max-w-[668px] sm:max-w-[540px] max-w-[460px] md:px-[0px] sm:px-[40px] px-[40px] m-auto w-full h-full flex justify-between items-center"> <img src={Logo} className='sm:h-[40px] h-[30px]' /> <div className="hidden md:flex items-center"> <ul className='flex gap-6'> <li>Home</li> <li>About</li> <li>Contact</li> </ul> </div> <div className='md:hidden' onClick={handleClick}> <img className="sm:h-[25px] h-[20px]" src={hamburgerBtn} /> </div> </div> </div> ) } export default Navbar; حاولت استيراد الصورة في مكون Logo.jsx ولكن لا تعمل، وأنا أحتاج استيراد كل شيء ككائن لأنني بحاجة إلى عمل toggle بين hamburgerBtn و closeBtn. اقتباس
0 Kamel Mecheri نشر 19 يوليو أرسل تقرير نشر 19 يوليو مرحبًا! إذا كنت تواجه مشكلة في استيراد الصور في Next.js وتظهر الصور تالفة، فإليك بعض الخطوات التي قد تساعدك في حل المشكلة: الحلول المقترحة تأكد من استيراد الصور بشكل صحيح: تأكد من أنك تستورد الصور بشكل صحيح. يجب أن يكون المسار إلى الصورة صحيحًا وتأكد من وجود الصورة في ذلك المسار. بالنسبة للملفات SVG، تأكد من أن لديك امتداد .svg في نهاية المسار. import Logo from '../assets/Logo.svg'; import hamburgerBtn from '../assets/hamburgerBtn.svg'; استخدم مكون Image من next/image: من الأفضل استخدام مكون Image من Next.js لتحميل الصور، حيث يوفر تحسينات في الأداء وتوافق أفضل. import Image from 'next/image'; import Logo from '../assets/Logo.svg'; import hamburgerBtn from '../assets/hamburgerBtn.svg'; function Navbar() { const [toggle, setToggle] = useState(false); const handleClick = () => setToggle(!toggle); return ( <div className='w-full h-[80px] bg-white'> <div className="2xl:max-w-[1400px] 2xl:px-[0] xl:max-w-[1180px] lg:max-w-[924px] md:max-w-[668px] sm:max-w-[540px] max-w-[460px] md:px-[0px] sm:px-[40px] px-[40px] m-auto w-full h-full flex justify-between items-center"> <Image src={Logo} alt="Logo" className='sm:h-[40px] h-[30px]' /> <div className="hidden md:flex items-center"> <ul className='flex gap-6'> <li>Home</li> <li>About</li> <li>Contact</li> </ul> </div> <div className='md:hidden' onClick={handleClick}> <Image src={hamburgerBtn} alt="Hamburger Button" className="sm:h-[25px] h-[20px]" /> </div> </div> </div> ); } export default Navbar; تحقق من إعدادات Webpack في next.config.js: تأكد من إعدادات Webpack لتحميل الصور. يمكنك إضافة إعدادات لتحميل الصور إذا لزم الأمر. // next.config.js module.exports = { images: { domains: ['example.com'], // أضف النطاقات التي يمكن تحميل الصور منها }, }; تحقق من وجود الصورة: تأكد من أن الصورة موجودة في المسار الصحيح الذي تستورده منه. تحقق من المسارات ونوع الملفات. إذا كنت لا تزال تواجه مشاكل بعد هذه الخطوات، حاول التحقق من سجل الأخطاء في وحدة التحكم أو أدوات المطورين في المتصفح، أو تحقق من الوثائق الرسمية لـ Next.js. اقتباس
السؤال
Abdelrahman Mostafa10
أحاول استيراد صورة في Next.js ولكنها تظهر تالفة، ولا أفهم السبب. لدي المسار الصحيح للصورة ولكنها تظهر تالفة، وعند وضع المسار مباشرة في src='../pathimagepath/image.svg' يعمل بشكل جيد، ولكن عندما أقوم بتمريره باستخدام استيراد، لا يعمل.
هذا هو الكود الخاص بي:
حاولت استيراد الصورة في مكون Logo.jsx ولكن لا تعمل، وأنا أحتاج استيراد كل شيء ككائن لأنني بحاجة إلى عمل toggle بين hamburgerBtn و closeBtn.
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.