На этой странице собраны ответы на часто задаваемые вопросы о App Hosting.
Часто задаваемые вопросы (App Hosting)
Общие ограничения и устранение неполадок в App Hosting
Из-за проблемы в инфраструктуре Cloud Run создание и обновление ресурсов в некоторых регионах, например
us-central1, может выполняться медленнее, чем обычно. Если задержка развертывания является проблемой в определенном регионе, Google рекомендует выполнить развертывание в другом регионе.Сеть доставки контента для App Hosting может включать в ключи кеша только определенный набор заголовков запросов. Вот что включено в этот список:
Заголовки Next.js:
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со значением, не указанным здесь, то CDN не будет его кешировать.Некэшированные статические файлы передаются из Cloud Run. В последующих выпусках они будут храниться и передаваться из источника App Hosting для повышения производительности.
В консоли Firebase при создании серверной части может периодически появляться ошибка "Сборка не найдена и недействительна".
Все бэкенды в одном проекте используют одну организацию или аккаунт GitHub. Их можно подключить к разным хранилищам в этой организации или аккаунте. Чтобы создать бэкенды, подключенные к разным аккаунтам GitHub, поместите их в отдельные проекты.
Ограничения и устранение неполадок в приложениях Angular
Хотя поддержка Angular в App Hosting активно развивается и расширяется, у нее есть следующие ограничения:
- I18n. Основные функции I18n работают, но прямой переход на страницы с SSR может приводить к ошибкам.
- Локализация. Создание версий для разных регионов не поддерживается.
- Конструкторы. В настоящее время поддерживается только конструктор приложений.
- Среды и инструменты монорепозитория. Проекты Angular, у которых больше одной цели приложения, не будут работать. Для более полной поддержки монорепозиториев используйте Nx.
Ошибки HTTP 400 и доверие к прокси-серверу в Angular SSR
Если в приложении Angular, развернутом на платформе Firebase App Hosting, возникают ошибки HTTP 400 (недопустимый запрос), блокировки проверки хоста или сбои доверия прокси-сервера, воспользуйтесь решением, рекомендованным для вашей версии Angular:
- Angular v19, v20 и v21. Устранить ошибки HTTP 400 можно двумя способами:
- Обновите зависимости. Для этого выполните команду
npm update @angular/core @angular/ssr, чтобы установить последнее исправление для текущей версии Angular. - Настройка вручную. Примените резервную конфигурацию на уровне кода, задав
trustProxyHeaders: trueв конфигурации сервера (см. раздел Настройка доверенных заголовков прокси-сервера в документации Angular).
- Обновите зависимости. Для этого выполните команду
- Angular v22. Первая сборка на новом бэкенде может возвращать ошибки 400. Чтобы устранить проблему, создайте вторую сборку. Все последующие сборки должны работать правильно.
Ограничения и устранение неполадок Next.js
- По умолчанию встроенная оптимизация изображений NextJS отключена в App Hosting, если вы не установили для
images.unoptimizedзначение false или не используете собственный загрузчик изображений. Подробнее об оптимизации загрузки изображений в Next.js… - По умолчанию Next.js записывает кешированные страницы и данные в файловую систему, что учитывается в памяти каждого обслуживающего экземпляра на App Hosting. Если экземпляры перезапускаются с ошибками
Memory limit exceeded, ознакомьтесь с разделом Настройка кеширования сервера в Next.js. - В настоящее время App Hosting ограничивает кеширование для приложений NextJS, использующих промежуточное ПО. Со временем коэффициент совпадений в кеше должен увеличиться.
- Пути URL, содержащие символы с кодировкой в формате URL, декодируются Cloud Run. Это может привести к проблемам с функциями, которые ожидают только закодированные пути URL, например с параллельной маршрутизацией Next.js.