الانتقال إلى المحتوى الرئيسي

‏NEXT_PUBLIC_*: خطأ Next.js الذي كلّفني نموذج تواصل في الإنتاج

Next.js
‏NEXT_PUBLIC_*: خطأ Next.js الذي كلّفني نموذج تواصل في الإنتاج

العرض: في الإنتاج، كانت الواجهة الأمامية تستدعي… localhost:8080. وبالطبع، لا شيء يجيب. 🐛

السبب: متغيرات NEXT_PUBLIC_* لا تُقرأ عند تشغيل الحاوية، بل تُثبَّت داخل حزمة JavaScript لحظة البناء (build).

عمليًا:

  • ❌ تعريف NEXT_PUBLIC_API_URL في ملف Kubernetes → فات الأوان، فالحزمة مُجمَّعة أصلًا بالقيمة الافتراضية.
  • ✅ تمرير المتغير كـ build-arg في Dockerfile، لحظة تنفيذ next build.

الأمر منطقي عند التفكير فيه: هذا الكود يعمل في متصفح الزائر ولا يمكنه قراءة بيئة الخادم. لكن القادم من عالم PHP، حيث كل شيء يُقرأ وقت التشغيل، لا يملك هذا الانعكاس بشكل طبيعي.

الخلاصة: اختبروا دائمًا صورة الإنتاج محليًا قبل النشر، وليس فقط npm run dev. 😅

شاهد المنشور الأصلي على LinkedIn