انتقل إلى المقال
Aniq-UI

Company Websiteحل المشكلات

حل المشكلات

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

Docker لا يعمل

ما تراه
failed to connect to the docker API at unix:///…/docker.sock; check if the path is correct and if the daemon is running

تعرض إصدارات Docker الأقدم الرسالة "Cannot connect to the Docker daemon" بدلًا من ذلك. وفي الحالتين، محرك Docker غير مُشغَّل.

  1. افتح Docker Desktop

    شغّل Docker Desktop وانتظر حتى يُظهر أن المحرك يعمل. على Linux، شغّل الخدمة: sudo systemctl start docker.

  2. تحقق من أن Docker يستجيب

    الطرفية
    docker info

    النتيجة المتوقعة: يطبع قسم Server بدلًا من رسالة خطأ.

  3. شغّل أوامرك من جديد

    شغّل docker build -t company-site .، ثم docker run -p 3030:3030 company-site.

المنفذ مستخدم بالفعل

ما تراه
Bind for 0.0.0.0:3030 failed: port is already allocated
ports are not available: exposing port TCP 0.0.0.0:3030 … bind: address already in use
Error: listen EADDRINUSE: address already in use :::3030

يأتي السطران الأولان من Docker، والأخير من yarn dev أو yarn start. هناك برنامج آخر يستمع بالفعل على 3030: غالبًا تشغيل سابق لهذا الموقع، أو خادم تطوير لمشروع آخر.

  1. اعرف ما الذي يشغل المنفذ

    على macOS أو Linux:

    الطرفية
    lsof -i :3030

    على Windows، في PowerShell:

    الطرفية
    netstat -ano | findstr :3030
  2. أوقفه

    أغلق ذلك البرنامج، أو أوقف التشغيل السابق: Ctrl+C في طرفيته، أو docker stop لحاوية شغّلتها بـ docker run. ثم شغّل الموقع من جديد.

  3. أو شغّل الموقع على منفذ آخر

    مع Docker، أبقِ 3030 على يمين -p وغيّر الرقم على اليسار:

    الطرفيةفي landing-page-template-3
    docker run -p 3041:3030 company-site

    من دون Docker، أعطِ Yarn المنفذ، أو استخدم yarn start -p 3041 لنسخة الإنتاج:

    الطرفيةفي landing-page-template-3
    yarn dev -p 3041

    النتيجة المتوقعة: يستجيب الموقع على منفذه الجديد، وهنا localhost:3041محلي.

فشل البناء

ينزّل أول بناء في Docker الصورة الأساسية وكل الاعتماديات، ثم يبني الموقع. ويتوقف برسالة "failed to solve" مع الخطوة التي فشلت عندما يعترضه شيء.

  • لا اتصال أو انتهت المهلة: يحتاج البناء إلى الإنترنت، للاعتماديات وللخطّين Inter وNoto Sans Arabic اللذين ينزّلهما next/font. شغّل الأمر من جديد عند عودة الاتصال؛ فالخطوات المكتملة محفوظة.
  • رسالة تقول إن خطًا تعذّر جلبه من Google Fonts: السبب نفسه، ويحدث أيضًا مع yarn build. تأكد أن fonts.googleapis.com متاح من شبكتك.
  • لا توجد مساحة كافية على الجهاز (No space left on device): حرّر مساحة في Docker Desktop، أو تحقق مما يستخدمه Docker بالأمر docker system df.
  • يفشل عند الخطوة نفسها في كل مرة: أعد البناء من دون ذاكرة التخزين المؤقت.
الطرفيةفي landing-page-template-3
docker build --no-cache -t company-site .

إذا توقف yarn build بخطأ في الأنواع أو في الفحص بعد تعديلاتك، فإن yarn typecheck وyarn lint يعرضان الملف والسطر.

يقول Yarn إن إصداره 1.22

ما تراه
This project's package.json defines "packageManager": "yarn@4…". However the current global version of Yarn is 1.22…

يثبّت المجلد Yarn 4 في package.json عبر Corepack. تعني هذه الرسالة أن Corepack غير مفعّل بعد، فاستجاب Yarn القديم المثبت على مستوى النظام بدلًا منه.

الطرفية
corepack enable

ثم شغّل yarn install مرة أخرى. إذا لم يكن مع Node.js لديك Corepack، فثبّته أولًا بالأمر npm install -g corepack.

تغيير عنوان الموقع لا يغيّر شيئًا

تُدمج قيمة NEXT_PUBLIC_SITE_URL في البناء. تغيير .env لا يغيّر شيئًا حتى يُبنى الموقع من جديد.

طريقة التشغيلبعد تغيير القيمة
yarn devأوقفه وشغّل yarn dev مجددًا.
yarn build وyarn startشغّل yarn build مجددًا، ثم yarn start.
docker buildأعد بناء الصورة مع القيمة كوسيط --build-arg. لا يقرأ Docker الملف .env.
Vercelغيّره في متغيرات البيئة (Environment Variables) في المشروع، ثم أعد النشر.

بعض الصور أو الشعارات لا تظهر

تُحمَّل الصور الشخصية وصور المدونة والمزايا من images.unsplash.com، ومعظم الشعارات من cdn.simpleicons.org. من دون اتصال بالإنترنت، أو على شبكة تحجب هذين المضيفين، تبقى فارغة.

الصورة التي تشير بها إلى موقع آخر تحتاج إلى إضافة مضيفها في images.remotePatterns داخل next.config.mjs، ثم إعادة تشغيل yarn dev أو بناء جديد. إذا توقف Simple Icons عن تقديم علامة تجارية، فاحفظ شعارها في public/images/logos/ وأشر إلى ذلك الملف، كما تفعل الشيفرة بالفعل مع Slack وSalesforce.

هكذا يأتي المحتوى التجريبي: الأزرار بلا وجهة، ومعظم الروابط تشير إلى #. أعطِ كلًا منها عنوانه قبل النشر.

عنوان يعرض صفحة 404

للموقع صفحة واحدة بلغتين: /en و/ar. أي عنوان آخر يُرجع 404 حتى تضيف تلك اللغة أو تلك الصفحة.

المجلد يبدو مختلفًا

شغّل الأوامر داخل المجلد الذي يُستخرج إليه ملف ZIP. إذا لم يكن الأمر unzip متوفرًا، فاستخرجه بمدير الملفات بدلًا من ذلك؛ تضيف بعض الأدوات مجلدًا إضافيًا يحمل اسم ملف ZIP، فانتقل إلى المجلد الداخلي.

المجلد الصحيح هو landing-page-template-3، وفي أعلاه Dockerfile وpackage.json وmessages وpublic وsrc.

توقفت عند خطوة؟

ابحث عن الحل قبل أن تبدأ من جديد.

حل المشكلات

تفضيلات ملفات تعريف الارتباط

نستخدم ملفات تعريف الارتباط لتعزيز تجربة التصفح الخاصة بك وتحليل حركة المرور على الموقع وتخصيص المحتوى. بالنقر على "قبول الكل"، فإنك توافق على استخدامنا لملفات تعريف الارتباط للتحليلات والإعلانات المخصصة.