इस पेज पर, अक्सर पूछे जाने वाले सवालों (एफ़एक्यू) के जवाब दिए गए हैं App Hosting.
App Hosting अक्सर पूछे जाने वाले सवाल
सामान्य App Hosting सीमाएं और समस्या हल करना
- Cloud Run के इन्फ़्रास्ट्रक्चर में मौजूद किसी 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 console में कभी-कभी "बिल्ड नहीं मिला और यह अमान्य है" गड़बड़ी दिख सकती है.
- एक ही प्रोजेक्ट में मौजूद सभी बैकएंड, GitHub के एक ही संगठन/खाते को शेयर करते हैं. इन्हें उस संगठन/खाते के तहत अलग-अलग रिपॉज़िटरी से कनेक्ट किया जा सकता है. GitHub के अलग-अलग खातों से कनेक्ट किए गए बैकएंड बनाने के लिए, उन्हें अलग-अलग प्रोजेक्ट में रखें.
Angular ऐप्लिकेशन से जुड़ी सीमाएं और समस्या हल करना
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 की पैरलल राउटिंग