این صفحه پاسخ به سوالات متداول (FAQs) در مورد App Hosting را ارائه میدهد.
سوالات متداول App Hosting
محدودیتهای عمومی App Hosting و عیبیابی
- به دلیل مشکلی در زیرساخت Cloud Run ، ایجاد یا بهروزرسانی منابع ممکن است در برخی مناطق مانند
us-central1کندتر از حد انتظار باشد. اگر تأخیر در استقرار در یک منطقه خاص مشکلساز است، گوگل توصیه میکند که در منطقه دیگری مستقر شوید. - CDN مربوط به App Hosting فقط میتواند مجموعهای خاص از هدرهای درخواست را در کلیدهای حافظه پنهان خود قرار دهد. این لیست شامل هدرهای
RSC،Next-Router-State-Tree،Next-Router-Prefetch،Next-Router-Segment-PrefetchوNext-Urlمربوط به NextJS و همچنین هدرهای استاندارد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مربوط به Cloud CDN میشود. اگر پاسخی حاوی هدرVaryبا مقداری باشد که در اینجا ذکر نشده است، CDN ما آن را ذخیره نمیکند. - فایلهای استاتیک ذخیره نشده از Cloud Run ارائه میشوند؛ در نسخه بعدی، برای عملکرد بهتر، این فایلها از مبدا App Hosting ذخیره و ارائه خواهند شد.
- کنسول Firebase ممکن است به طور متناوب خطای "ساخت یافت نشد و نامعتبر است" را در هنگام ایجاد بکاند نشان دهد.
- همه backend های یک پروژه، یک حساب GitHub org/account مشترک دارند. آنها میتوانند به مخازن مختلف تحت آن org/account متصل شوند. برای ایجاد backend هایی که به حسابهای GitHub مختلف متصل هستند، آنها را در پروژههای جداگانه قرار دهید.
محدودیتهای برنامههای Angular و عیبیابی آنها
اگرچه پشتیبانی App Hosting برای Angular به طور فعال در حال توسعه و گسترش است، اما محدودیتهای زیر را دارد:
- I18n : در حالی که قابلیتهای اصلی I18n کار میکنند، پیمایش مستقیم به صفحات SSR میتواند منجر به خطا شود.
- بومیسازی : ساخت نسخه برای زبانهای مختلف پشتیبانی نمیشود.
- سازندگان : در حال حاضر فقط سازنده برنامه پشتیبانی میشود.
- محیطها و ابزارهای مونوریپو : پروژههای انگولار که بیش از یک هدف کاربردی واحد دارند، با شکست مواجه خواهند شد. برای پشتیبانی کاملتر از مونوریپو، از Nx استفاده کنید.
خطاهای HTTP 400 و اعتماد به پروکسی در Angular SSR
اگر برنامه Angular شما که روی Firebase App Hosting مستقر شده است با خطاهای HTTP 400 (درخواست بد)، مسدودکنندههای اعتبارسنجی میزبان یا خرابیهای اعتماد پروکسی مواجه میشود، راهحل پیشنهادی برای نسخه Angular خود را دنبال کنید:
- نسخههای ۱۹، ۲۰ و ۲۱ انگولار : شما دو راه برای حل این خطاهای HTTP 400 دارید:
- ارتقاء وابستگیها: برای نصب آخرین نسخه پچ برای نسخه فعلی انگولار خود
npm update @angular/core @angular/ssrرا اجرا کنید. - پیکربندی دستی: با تنظیم
trustProxyHeaders: trueدر پیکربندی سرور خود، یک جایگزین پیکربندی در سطح کد اعمال کنید ( به بخش پیکربندی هدرهای پروکسی قابل اعتماد در مستندات Angular مراجعه کنید).
- ارتقاء وابستگیها: برای نصب آخرین نسخه پچ برای نسخه فعلی انگولار خود
- Angular نسخه ۲۲ : اولین ساخت روی یک backend جدید ممکن است خطای ۴۰۰ را برگرداند. برای حل این مشکل، یک ساخت دوم ایجاد کنید. همه ساختهای بعدی باید طبق برنامه کار کنند.
محدودیتها و عیبیابی Next.js
- به طور پیشفرض، بهینهسازی تصویر NextJS داخلی در App Hosting غیرفعال است، مگر اینکه صریحاً
images.unoptimizedرا روی false تنظیم کنید یا از یک Image Loader سفارشی استفاده کنید. به Optimize image loading در Next.js مراجعه کنید. - مسیرهای URL حاوی کاراکترهای کدگذاری شده با درصد توسط Cloud Run رمزگشایی میشوند. این ممکن است باعث ایجاد مشکلاتی در ویژگیهایی شود که فقط مسیرهای URL کدگذاری شده را انتظار دارند، مانند مسیریابی موازی Next.js.
- در حال حاضر، App Hosting ذخیرهسازی موقت (caching) را برای برنامههای NextJS که از میانافزار استفاده میکنند، محدود میکند. با گذشت زمان، نرخ موفقیت در ذخیرهسازی موقت (cache hit) باید بهبود یابد.
- مسیرهای URL حاوی کاراکترهای کدگذاری شده با درصد توسط Cloud Run رمزگشایی میشوند. این ممکن است باعث ایجاد مشکلاتی در ویژگیهایی شود که فقط مسیرهای URL کدگذاری شده را انتظار دارند، مانند مسیریابی موازی Next.js.