1. تأكد هل المشروع Static فعلاً
انظر إلى ناتج الإنتاج لا إلى ملفات المصدر فقط. بعض المشاريع تحتاج Node أثناء البناء لكنها تنتج مجلد dist/build ثابتاً. مشاريع أخرى تحتاج Node على الخادم وقت التشغيل و ليست Static.
- Static: المتصفح يستلم HTML/CSS/JS و لا توجد خدمة تطبيق على الخادم.
- Static build: Node مطلوب أثناء التطوير/البناء فقط و ليس بعد التصدير.
- SSR أو API backend: يحتاج Runtime أو Backend منفصلاً و يجب تقييمه بشكل مستقل.
2. ابنِ نسخة الإنتاج قبل الرفع
شغّل أمر build في البيئة المعتادة للمشروع ثم ارفع مجلد الإنتاج الناتج بدلاً من أدوات التطوير و cache و اعتمادات المصدر.
- تأكد أن build ينجح بمتغيرات الإنتاج.
- لا ترفع ملفات .env التي تحتوي أسراراً إلى المسار العام.
- تأكد من أن روابط Assets تعمل على مسار النطاق النهائي.
3. ارفع إلى مجلد النطاق
استخدم File Manager في GreatHosts CP لرفع أو سحب الملفات. المسار المعتاد للنطاق تحت /home/www/domain.com و يجب أن يحتوي المجلد العام ملف الدخول مثل index.html.
4. تعامل مع SPA بعناية
قد يحتاج Client-side router قاعدة fallback حتى تعيد المسارات غير المعروفة ملف التطبيق بدلاً من 404. لا تضف Rewrite إلا إذا طلبه Framework و اختبر فتح الروابط العميقة مباشرة.
5. لا تضع الأسرار في JavaScript
أي مفتاح داخل JavaScript في المتصفح يمكن للزائر رؤيته. استخدم فقط مفاتيح client العامة التي يسمح بها المزود صراحة، أما API secrets فتحتاج مكوناً Server-side أو Backend خارجياً.
6. اربط النطاق و HTTPS
اضبط DNS و انتظر الانتشار ثم فعّل HTTPS و اختبر الصفحة الرئيسية و الروابط العميقة. Let’s Encrypt مجاني للنطاقات المؤهلة المطلوبة عبر GreatHosts.
7. حسّن ما يحمّله الزائر
الاستضافة الثابتة تكون سريعة عندما تكون Assets صغيرة و قابلة للتخزين المؤقت. اضغط الصور الكبيرة و قلل JavaScript غير المستخدم و استخدم أحجام صور responsive و احذف source maps إذا كانت تكشف معلومات لا تريد نشرها.
أسئلة شائعة
هل يحتاج React/Vue/Vite إلى Node.js على الاستضافة؟
ليس دائماً. إذا كان build ينتج ملفات ثابتة تعمل في المتصفح فلا يحتاج خادم الإنتاج إلى Node.js. أما SSR أو تطبيق Node server فهو مختلف.
هل يمكن رفع ZIP؟
نعم. GreatHosts CP يدعم إدارة الملفات بصرياً و مسارات تعتمد على الأرشيف.
هل shared كافية؟
لموقع static أو client-side عادي غالباً نعم، لأن الحمل الأساسي هو تقديم الملفات ما لم توجد مكونات server-side.