इस पेज पर, अक्सर पूछे जाने वाले सवालों (एफ़एक्यू) के जवाब दिए गए हैं App Hosting.
App Hosting अक्सर पूछे जाने वाले सवाल
सामान्य App Hosting सीमाएं और समस्या हल करना
- इन्फ़्रास्ट्रक्चर में किसी Cloud Run समस्या की वजह से, संसाधन बनाने या अपडेट करने में कुछ इलाकों में उम्मीद से ज़्यादा समय लग सकता है. जैसे,
us-central1. अगर किसी इलाके में डिप्लॉयमेंट में ज़्यादा समय लगता है, तो Google का सुझाव है कि किसी दूसरे इलाके में डिप्लॉय करें. - App Hosting का सीडीएन, अपनी कैश कुंजियों में सिर्फ़ अनुरोध के कुछ खास हेडर शामिल कर सकता है. इस सूची में, NextJS के
RSC,Next-Router-State-Tree,Next-Router-Prefetch,Next-Router-Segment-Prefetch, औरNext-Urlहेडर शामिल हैं. साथ ही, Cloud CDN के स्टैंडर्डAccept,Accept-Encoding,Access-Control-Request-Headers,Access-Control-Request-Method,Origin,Sec-Fetch-Dest,Sec-Fetch-Mode,Sec-Fetch-Site,X-Goog-Allowed-Resources, औरX-Originहेडर भी शामिल हैं. अगर किसी जवाब में,Varyहेडर के साथ ऐसी वैल्यू शामिल है जो यहां सूची में नहीं दी गई है, तो हमारा सीडीएन उसे कैश नहीं करेगा. - कैश नहीं की गई स्टैटिक फ़ाइलें, Cloud Run से दिखाई जाती हैं. आने वाले समय में, इन्हें App Hosting ऑरिजिन में सेव किया जाएगा और वहीं से दिखाया जाएगा, ताकि बेहतर परफ़ॉर्मेंस मिल सके.
- बैकएंड बनाते समय, Firebase कंसोल में कभी-कभी "बिल्ड नहीं मिला और यह अमान्य है" गड़बड़ी दिख सकती है.
- एक ही प्रोजेक्ट में मौजूद सभी बैकएंड, एक ही GitHub संगठन/खाते का इस्तेमाल करते हैं. इन्हें उस संगठन/खाते के तहत मौजूद अलग-अलग रिपॉज़िटरी से कनेक्ट किया जा सकता है. अलग-अलग GitHub खातों से कनेक्ट किए गए बैकएंड बनाने के लिए, उन्हें अलग-अलग प्रोजेक्ट में रखें.
Angular ऐप्लिकेशन की सीमाएं और समस्या हल करना
App Hosting, Angular के साथ काम करने की सुविधा को बेहतर बनाने और इसका दायरा बढ़ाने पर काम कर रहा है. हालांकि, इसकी कुछ सीमाएं हैं:App Hosting
- I18n: I18n की मुख्य सुविधा काम करती है. हालांकि, SSR पेजों पर सीधे नेविगेट करने पर गड़बड़ियां आ सकती हैं.
- स्थानीय भाषा के हिसाब से बनाना: अलग-अलग स्थानीय भाषाओं के लिए वर्शन बनाने की सुविधा उपलब्ध नहीं है.
- बिल्डर: फ़िलहाल, सिर्फ़ ऐप्लिकेशन बिल्डर की सुविधा उपलब्ध है.
- एनवायरमेंट और मोनोरिपो टूलिंग: Angular के ऐसे प्रोजेक्ट काम नहीं करेंगे जिनमें एक से ज़्यादा ऐप्लिकेशन टारगेट हों. मोनोरिपो के लिए बेहतर सहायता पाने के लिए, Nx का इस्तेमाल करें.
Angular SSR में एचटीटीपी 400 की गड़बड़ियां और प्रॉक्सी ट्रस्ट की समस्याएं
अगर Firebase App Hosting पर डिप्लॉय किए गए आपके Angular ऐप्लिकेशन में, एचटीटीपी 400 (अमान्य अनुरोध) की गड़बड़ियां, होस्ट की पुष्टि करने में आने वाली समस्याएं या प्रॉक्सी ट्रस्ट की समस्याएं आती हैं, तो अपने Angular वर्शन के लिए सुझाया गया तरीका अपनाएं:
- Angular v19, v20, और v21: एचटीटीपी 400
की इन गड़बड़ियों को ठीक करने के दो तरीके हैं:
- डिपेंडेंसी अपग्रेड करना: अपने मौजूदा Angular वर्शन के लिए, सबसे नया पैच रिलीज़ इंस्टॉल करने के लिए,
npm update @angular/core @angular/ssrचलाएं. - मैन्युअल कॉन्फ़िगरेशन: अपने सर्वर कॉन्फ़िगरेशन में
trustProxyHeaders: trueसेट करके, कोड-लेवल का फ़ॉलबैक कॉन्फ़िगरेशन लागू करें. इसके लिए, Angular के दस्तावेज़ में भरोसेमंद प्रॉक्सी हेडर कॉन्फ़िगर करना लेख पढ़ें.
- डिपेंडेंसी अपग्रेड करना: अपने मौजूदा Angular वर्शन के लिए, सबसे नया पैच रिलीज़ इंस्टॉल करने के लिए,
- Angular v22: नए बैकएंड पर पहला बिल्ड, 400 की गड़बड़ियां दिखा सकता है. इस समस्या को हल करने के लिए, दूसरा बिल्ड जनरेट करें. इसके बाद के सभी बिल्ड, उम्मीद के मुताबिक काम करेंगे.
Next.js की सीमाएं और समस्या हल करना
- App Hosting पर, NextJS की इमेज ऑप्टिमाइज़ेशन की सुविधा डिफ़ॉल्ट रूप से बंद होती है. हालांकि, अगर
images.unoptimizedको साफ़ तौर पर 'गलत' पर सेट किया जाता है या कस्टम इमेज लोडर का इस्तेमाल किया जाता है, तो यह सुविधा चालू हो जाती है. Next.js पर इमेज लोड होने की प्रोसेस को ऑप्टिमाइज़ करना लेख पढ़ें. - Cloud Run, प्रतिशत के तौर पर एन्कोड किए गए वर्णों वाले यूआरएल पाथ को डिकोड करता है Cloud Run. इससे उन सुविधाओं में समस्याएं आ सकती हैं जिनमें सिर्फ़ एन्कोड किए गए यूआरएल पाथ की ज़रूरत होती है. जैसे, Next.js की पैरलल राउटिंग.
- फ़िलहाल, App Hosting मिडलवेयर का इस्तेमाल करने वाले NextJS ऐप्लिकेशन के लिए कैशिंग को सीमित करता है. समय के साथ, कैश हिट रेट बेहतर होने चाहिए.
- Cloud Run, प्रतिशत के तौर पर एन्कोड किए गए वर्णों वाले यूआरएल पाथ को डिकोड करता है. इससे उन सुविधाओं में समस्याएं आ सकती हैं जिनमें सिर्फ़ एन्कोड किए गए यूआरएल पाथ की ज़रूरत होती है. जैसे, Next.js की पैरलल राउटिंग