استكشاف الأخطاء وإصلاحها·6 min read·

مقالتي لا تُنشر — كيف أُصلح ذلك؟

الحالة عالقة في Draft، المقالات المجدولة لا تظهر في الوقت المحدد، تعارضات الحفظ التلقائي، أخطاء التحقق من محتوى المقالة — حلول عملية لكل سيناريو فشل نشر ممكن.

ضغطتَ على Publish، دار مؤشر التحميل لحظة، ثم... لا شيء. المقالة لا تزال في Draft، أو تقول Scheduled لكنها لم تظهر أبداً. إنه أحد تلك الإخفاقات الصغيرة التي تُشعرك بإحباط لا يتناسب مع حجمها، خاصةً إن كان لديك إعلان موقوت. إليك بالضبط ما يجب التحقق منه، بالترتيب، لنشر مقالتك.

أولاً — تحقق من حالة المقالة في لوحة التحكم

انتقل إلى Admin ← Posts وانظر إلى عمود Status بجانب مقالتك. ثمة أربع حالات: Draft وScheduled وPublishing وPublished. إذا قرأتَ Publishing لأكثر من 30 ثانية، فقد علقت العملية في منتصفها. أما إذا كتب Scheduled مع تاريخ مستقبلي، فالمقالة بخير — هي فقط غير مباشرة بعد بحكم التصميم.

تُنشر المقالات المجدولة في غضون 60 ثانية من وقتها المحدد، لا في اللحظة بالضبط. تستخدم VeloCMS مهمة cron من جانب الخادم تعمل كل دقيقة. إذا تأخرت مقالتك دقيقتين، انتظر 60 ثانية أخرى وأعد التحميل القسري للرابط العام قبل التشخيص.

عالقة في Draft بعد النقر على Publish

السبب الأكثر شيوعاً هو ترك حقل مطلوب فارغاً. تشترط VeloCMS وجود عنوان وفقرة محتوى واحدة على الأقل قبل النشر. إذا غاب أيٌّ منهما، يفشل إجراء الحفظ بصمت في بعض إصدارات المتصفح. افتح المقالة في المحرر وابحث عن حدود حمراء حول حقل العنوان أو شريط تحذير في أعلى لوحة المحرر. أضف المحتوى الناقص وحاول مرة أخرى.

  • حقل العنوان فارغ أو يحتوي على مسافات فقط — تُزيل VeloCMS المسافات الزائدة في البداية والنهاية قبل التحقق.
  • محتوى المقالة يحتوي فقط على عقد نصية فارغة — اكتب فقرة حقيقية، ولو كانت نصاً مؤقتاً، ثم انشر.
  • رابط الصورة المميزة مشوّه — إذا لصقتَ رابط صورة خارجي يدوياً، احذفه وأعد الرفع عبر أداة اختيار الوسائط.
  • تعارض في الـ slug — لا يمكن لمقالتين أن تتشاركا نفس الـ slug. تُضيف VeloCMS رقماً تلقائياً، لكن إذا عدّلتَ الـ slug يدوياً ليطابق موجوداً، فغيّره.

تعارضات الحفظ التلقائي تعيق النشر

تحفظ VeloCMS تلقائياً كل 30 ثانية أثناء الكتابة. إذا انقطعت علامة تبويب متصفحك عن الإنترنت في منتصف التعديل ثم عادت، قد تتباين حالة الحفظ التلقائي المحلية وحالة الخادم. سيُظهر المحرر شارة صفراء «Unsaved changes» في أعلى اليمين. قبل النقر على Publish في هذه الحالة، انقر على الشارة — ستفتح عرض مقارنة يُظهر المحتوى المحلي مقابل محتوى الخادم. اختر الإصدار الذي تريد الإبقاء عليه، ثم انشر من الحالة المحسومة.

إذا كان لديك نفس المقالة مفتوحة في علامات تبويب متعددة، أغلق جميعها ما عدا واحدة قبل النشر. علامتا تبويب تكتبان في آنٍ واحد ستنتجان تعارض «آخر كتابة تفوز» وستُفقد مجموعة من التغييرات بصمت.

المقالة المجدولة لا تنشر في الوقت الصحيح

يستخدم النشر المجدول المنطقة الزمنية المضبوطة في Admin ← Settings ← General ← Timezone. إذا كانت منطقة مدونتك UTC لكنك أدخلتَ 9:00 صباحاً معتقداً أنه وقتك المحلي (مثل EST وهو UTC-5)، سيُنشر المنشور بعد 5 ساعات من موعدك المتوقع. تحقق دائماً من شريط المنطقة الزمنية في أداة جدولة محرر المقالة — يُعرض الوقت في منطقتك الزمنية المحلية (متصفحك) وفي المنطقة الزمنية لمدونتك جنباً إلى جنب.

  • تحقق من أن Admin ← Settings ← General ← Timezone يتوافق مع منطقتك الزمنية المقصودة.
  • إذا غيّرتَ المنطقة الزمنية بعد جدولة مقالات، لا تزال تلك المقالات تستخدم الوقت كما خُزّن أصلاً بتوقيت UTC. أعد جدولتها بشكل صريح.
  • انتقالات التوقيت الصيفي (DST) قد تُزيح أوقات الجدولة ساعة واحدة إذا حدثت الجدولة عبر حدود DST.
  • تعمل Railway (منصة الاستضافة) بتوقيت UTC. المُجدوِل من جانب الخادم، لذا يحترم UTC بصرف النظر عن المنطقة الزمنية المحلية لمتصفحك.

النشر يعمل محلياً لكن يفشل في بيئة الإنتاج

إذا كنت تستضيف VeloCMS بنفسك وكان النشر يعمل محلياً لكن يفشل على نشرتك في Railway، فالمشتبه به المعتاد هو عدم تطابق متغيرات البيئة. افتح لوحة تحكم Railway، انتقل إلى خدمة VeloCMS، وتحقق من علامة تبويب Variables. تأكد أن POCKETBASE_URL يُشير إلى نسخة PocketBase الإنتاجية — لا إلى localhost:8090. تحقق أيضاً من ضبط POCKETBASE_ADMIN_EMAIL وPOCKETBASE_ADMIN_PASSWORD بشكل صحيح. فشل الاتصال بـ PocketBase سيُعيد إجراء النشر الخادمي خطأ 500 ويترك المقالة في Draft.

لا تزال عالقاً؟ انتقل إلى Admin ← Settings ← Logs وابحث عن سطر خطأ أحمر مُوقَّت قرب وقت محاولتك للنشر. انسخ رسالة الخطأ وأرسلها إلى [email protected] — هذا أسرع مسار للحل.