جب ایک سادہ ریفریش نے ہماری ایپ کو خراب کر دیا
ہمیں ایک bug ملا۔ Top routes ٹھیک کام کر رہے تھے۔ Deep routes کی وجہ سے پورا صفحہ دوبارہ لوڈ ہو رہا تھا۔ Sidebar ہر بار ری سیٹ ہو جاتا تھا۔ ایپ غیر مستحکم محسوس ہو رہی تھی۔
یہ locally کام کر رہا تھا۔ یہ production میں ناکام ہو گیا۔
ہم نے Azure Static Web Apps پر Next.js static export کا استعمال کیا۔ اس سیٹ اپ میں کوئی server runtime نہیں ہے۔ یہ static files فراہم کرتا ہے۔
مسئلہ soft navigation کا تھا۔ Smooth transitions کے لیے Next.js کو route payload data کی ضرورت ہوتی ہے۔ پہلی بار لوڈ ہونے کے لیے اسے HTML کی ضرورت ہوتی ہے۔
ہمارے Azure rewrite rules بہت زیادہ وسیع تھے۔ جب Next.js نے payload data مانگا تو Azure نے HTML بھیج دیا۔ Router ناکام ہو گیا۔ ایپ دوبارہ لوڈ ہو گئی۔
ہم نے اسے automation کے ذریعے ٹھیک کیا۔ ہم نے build output سے rewrite rules تیار کرنے کے لیے ایک ٹول بنایا۔ یہ ٹول اب:
- Dynamic route files کو اسکین کرتا ہے۔
- HTML اور payloads کے لیے مخصوص رولز بناتا ہے۔
- Priority کے لحاظ سے رولز کی ترتیب دیتا ہے۔
- حتمی config file لکھتا ہے۔
اس سے manual errors ختم ہو گئے۔
اگر آپ Azure پر static export استعمال کرتے ہیں:
- اپنی config files کو automate کریں۔
- Soft navigation کو ٹیسٹ کریں۔
- چیک کریں کہ کیا payload requests HTML واپس کر رہی ہیں۔
- Rewrite rules کو critical infrastructure کے طور پر سمجھیں۔
مشکل frontend bugs اکثر build output اور hosting rules کے درمیان ہوتے ہیں۔