حل المشكلات
الأخطاء التي قد تواجهها أثناء تثبيت الموقع أو بنائه أو تعديله، وسبب كل خطأ، وكيف تصلحه.
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 غير مُشغَّل.
افتح Docker Desktop
شغّل Docker Desktop وانتظر حتى يُظهر أن المحرك يعمل. على Linux، شغّل الخدمة:
sudo systemctl start docker.تحقق من أن Docker يستجيب
الطرفيةdocker infoالنتيجة المتوقعة: يطبع قسم Server بدلًا من رسالة خطأ.
شغّل أمرك مجددًا
docker build -t publino-landing .، ثمdocker run -p 3030:3030 publino-landing.
المنفذ مستخدم بالفعل
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: غالبًا تشغيل سابق لهذا الموقع، أو خادم مشروع آخر.
اعرف ما الذي يشغل المنفذ
على macOS أو Linux:
الطرفيةlsof -i :3030على Windows، في PowerShell:
الطرفيةnetstat -ano | findstr :3030أوقفه
أغلق ذلك البرنامج، أو أوقف التشغيل السابق: Ctrl+C في طرفيته، أو
docker stopمع معرّف الحاوية منdocker ps. ثم شغّل الموقع مرة أخرى.أو استخدم منفذًا آخر
أبقِ البرنامج الآخر وشغّل الموقع على منفذ متاح، هنا
3041:طريقة التشغيل الأمر Docker docker run -p 3041:3030 publino-landingخادم التطوير yarn dev -p 3041بناء الإنتاج yarn start -p 3041مع Docker، غيّر الرقم الأول بعد
-pفقط: الموقع داخل الحاوية يستمع دائمًا على3030.النتيجة المتوقعة: يعمل الموقع على localhost:3041محلي.
فشل البناء
يتوقف docker build بالرسالة "failed to solve" مع الخطوة التي فشلت؛ ويتوقف yarn build مع الخطأ نفسه. الأسباب المعتادة:
- لا يوجد اتصال أو انتهت المهلة: ينزّل البناء الاعتماديات من سجل npm. أعد تشغيل الأمر عندما تتصل بالإنترنت؛ ومع Docker تُحفظ الخطوات المنتهية.
- `Invalid URL`: قيمة
NEXT_PUBLIC_SITE_URLليست عنوانًا كاملًا. اكتبها معhttps://، مثلhttps://www.your-domain.com. - لا توجد مساحة كافية على الجهاز (No space left on device): حرّر مساحة في Docker Desktop، أو تحقق مما يستخدمه Docker بالأمر
docker system df. - يفشل عند الخطوة نفسها في كل مرة: أعد البناء من دون ذاكرة التخزين المؤقت.
Publino-templatedocker build --no-cache -t publino-landing .من دون Docker، احذف المجلدين node_modules و.next، ثم شغّل yarn install وyarn build مجددًا.
يقول Yarn إن إصداره 1.22
This project's package.json defines "packageManager": "yarn@4.6.0…". However the current global version of Yarn is 1.22…يثبّت المشروع Yarn 4 عبر Corepack. تعني هذه الرسالة أن Corepack لم يُفعَّل بعد، فأجاب Yarn عام قديم بدلًا منه.
corepack enableثم شغّل yarn install من جديد. استخدم Yarn بدل npm، فالملف yarn.lock هو ما يُبقي تثبيتك على الإصدارات التي اختُبر بها القالب.
لا يوجد أمر corepack
corepack: command not foundلم يعد Node.js 25 وما بعده يتضمن Corepack. ثبّته مرة واحدة بـ npm، ثم فعّله:
npm install -g corepack
corepack enableثم شغّل yarn install من جديد. الأمران نفسهما يصلحان yarn: command not found.
إصدار Node.js قديم
You are using Node.js 18.20.4. For Next.js, Node.js version ">=20.9.0" is required.يحتاج Next.js 16 إلى Node.js 20.9 أو أحدث. اعرف إصدارك بالأمر node -v. ثبّت Node.js 22 أو 24، وافتح طرفية جديدة، وشغّل corepack enable من جديد، ثم yarn install وyarn dev.
مع Docker لا ينطبق هذا، فالصورة تأتي بـ Node.js 24 الخاص بها.
تغيير الإعداد لا يُحدث أي أثر
تُضمَّن NEXT_PUBLIC_SITE_URL وبقية قيم NEXT_PUBLIC_ في الموقع عند بنائه. تغيير إحداها لا يغيّر شيئًا حتى يُبنى الموقع من جديد.
| طريقة التشغيل | بعد تغيير قيمة |
|---|---|
yarn dev | غيّره في .env.local، وأوقف الخادم، ثم شغّل yarn dev مجددًا. |
yarn build وyarn start | غيّره في .env.local، وشغّل yarn build مجددًا، ثم yarn start. |
| Docker | ابنِ الصورة مجددًا مع القيمة كوسيط --build-arg. يتجاهل بناء الصورة .env و.env.local. |
| Vercel | غيّره في Environment Variables الخاصة بالمشروع وانشر مجددًا. |
يفشل yarn start أو يعرض نسخة قديمة
Could not find a production build in the '.next' directory. Try building your app with 'next build' before starting the production server.يقدّم yarn start آخر بناء إنتاج من المجلد .next. شغّل yarn build أولًا، ومن جديد بعد كل تغيير.
إذا ظهرت في الموقع أخطاء لا تطابق كودك، وغالبًا بعد تغيير إصدار اعتمادية أو BUILD_STANDALONE، فاحذف المجلد .next وابنِ من جديد:
Publino-templaterm -rf .next
yarn buildعلى Windows، في PowerShell، احذفه بالأمر Remove-Item -Recurse -Force .next.
يقول النموذج إنه أُرسل، لكن لا يصل شيء
هذا ما يأتي به القالب. يفحص نموذج التواصل ونموذج الصفحة الرئيسية ما يكتبه الزوار ويعرضان رسالة النجاح، لكنهما لا يرسلان شيئًا إلى أي مكان حتى تربط كل نموذج بخدمتك الخاصة.
الكابتشا تعرض خطأ
ERROR for site owner: Invalid domain for site keyيعرض نموذج الصفحة الرئيسية مربع Google reCAPTCHA فقط عند ضبط NEXT_PUBLIC_RECAPTCHA_SITE_KEY. تعني هذه الرسالة أن النطاق الذي فتحت عليه الموقع ليس في قائمة نطاقات ذلك المفتاح. في لوحة إدارة reCAPTCHA، أضف نطاقك، وأضف localhost لتجربته على جهازك. يجب أن يكون المفتاح من نوع reCAPTCHA v2 «أنا لست برنامج روبوت».
لإزالة خطوة الكابتشا، اترك المتغير فارغًا وابنِ من جديد.
زر لا يفعل شيئًا
بعض الأزرار عناصر نائبة بحكم التصميم، لتوجّهها إلى صفحاتك: تسجيل الدخول واحجز مكالمة في الترويسة، وابدأ الآن واعرف المزيد في القسم الرئيسي، واستكشف القوالب في القسم المتجاوب، وتصفح كل القوالب، والأزرار وعناصر القوائم داخل نموذج لوحة التحكم. وروابط التواصل الاجتماعي في صفحة التواصل تشير إلى #. أما روابط الترويسة وأزرار الخطط وبطاقات القوالب فتعمل بالفعل.
صورة معاينة قالب لا تظهر
Invalid src prop (https://…) on `next/image`, hostname "…" is not configured under images in your `next.config.js`تحمّل بطاقات القوالب الأربع النموذجية في الصفحة الرئيسية معاينتها من خادم صور Aniq UI، وهو مسموح في next.config.js. بلا اتصال بالإنترنت تبقى فارغة. إذا وجّهت بطاقة إلى صورة على خادم آخر، يتوقف Next.js برسالة الخطأ أعلاه: ضع الصورة في public/ بدلًا من ذلك، أو أضف مضيفها إلى images.remotePatterns في next.config.js.
يفتح الموقع بالعربية
عند فتح / يُوجَّه الزائر إلى /ar إذا كان متصفحه يفضّل العربية. وبعد أن يختار الزائر لغة من قائمة الترويسة يتذكرها الموقع. اختر الإنجليزية من القائمة، أو افتح /pricing أو أي صفحة أخرى بلا بادئة.
يبقى الموقع داكنًا، أو يبقى فاتحًا
يفتح الموقع بالسمة الداكنة. زر الشمس والقمر في الترويسة يبدّلها، ويتذكر المتصفح اختيارك. لترى ما يراه زائر جديد، امسح بيانات الموقع الخاصة بـ localhost:3030 في متصفحك، أو افتح نافذة خاصة.
المجلد يبدو مختلفًا
شغّل الأوامر داخل المجلد الذي يُستخرج إليه ملف ZIP، وهو Publino-template. فيه Dockerfile وpackage.json وyarn.lock وmessages وpublic وsrc. إذا كان الأمر unzip غير موجود، فاستخرج الملف بمدير الملفات. بعض الأدوات تضيف مجلدًا إضافيًا باسم ملف ZIP، فادخل إلى المجلد الداخلي.