Trang này cung cấp câu trả lời cho các câu hỏi thường gặp (FAQ) về App Hosting.
App Hosting Câu hỏi thường gặp
Các giới hạn và biện pháp khắc phục sự cố chung của App Hosting
- Do sự cố trong cơ sở hạ tầng, việc tạo hoặc cập nhật tài nguyên có thể chậm hơn dự kiến ở một số khu vực như
us-central1.Cloud Run Nếu độ trễ triển khai là một vấn đề ở một khu vực cụ thể, thì Google khuyên bạn nên triển khai ở một khu vực khác. - CDN của App Hosting chỉ có thể bao gồm một tập hợp tiêu đề yêu cầu cụ thể trong
các khoá bộ nhớ đệm. Danh sách đó bao gồm các tiêu đề
RSC,Next-Router-State-Tree,Next-Router-Prefetch,Next-Router-Segment-Prefetch, vàNext-Urlcủa NextJS, cũng như các tiêu đề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, vàX-Origintiêu chuẩn của Cloud CDN. Nếu một phản hồi chứa tiêu đềVarycó giá trị không được liệt kê ở đây, thì CDN của chúng tôi sẽ không lưu vào bộ nhớ đệm. - Các tệp tĩnh không được lưu vào bộ nhớ đệm sẽ được phân phát từ Cloud Run; trong một bản phát hành sau này, các tệp này sẽ được lưu trữ và phân phát từ nguồn gốc App Hosting để có hiệu suất tốt hơn.
- Bảng điều khiển Firebase có thể thỉnh thoảng hiển thị lỗi "build was not found and is invalid" (không tìm thấy bản dựng và bản dựng không hợp lệ) khi tạo phần phụ trợ.
- Tất cả phần phụ trợ trong cùng một dự án đều dùng chung một tổ chức/tài khoản GitHub. Chúng có thể được kết nối với các kho lưu trữ khác nhau trong tổ chức/tài khoản đó. Để tạo các phần phụ trợ được kết nối với các tài khoản GitHub khác nhau, hãy đặt các phần phụ trợ đó vào các dự án riêng biệt.
Các giới hạn và biện pháp khắc phục sự cố của ứng dụng Angular
Mặc dù tính năng hỗ trợ App Hosting cho Angular đang được phát triển và mở rộng, nhưng tính năng này có các giới hạn sau:
- I18n: Mặc dù chức năng I18n cốt lõi hoạt động, nhưng việc điều hướng trực tiếp đến các trang SSR có thể dẫn đến lỗi.
- Bản địa hoá: Không hỗ trợ việc tạo các phiên bản cho nhiều ngôn ngữ.
- Trình tạo: Hiện chỉ hỗ trợ Trình tạo ứng dụng.
- Môi trường và công cụ Monorepo: Các dự án Angular có nhiều hơn một mục tiêu ứng dụng sẽ không thành công. Để được hỗ trợ monorepo đầy đủ hơn, hãy sử dụng Nx.
Lỗi HTTP 400 và độ tin cậy của proxy trong Angular SSR
Nếu ứng dụng Angular được triển khai trên Firebase App Hosting gặp lỗi HTTP 400 (Yêu cầu không hợp lệ), trình chặn xác thực máy chủ lưu trữ hoặc lỗi độ tin cậy của proxy , hãy làm theo giải pháp được đề xuất cho phiên bản Angular của bạn:
- Angular v19, v20 và v21: Bạn có 2 cách để giải quyết các lỗi HTTP 400
này:
- Nâng cấp các phần phụ thuộc: Chạy
npm update @angular/core @angular/ssrđể cài đặt bản phát hành bản vá mới nhất cho phiên bản Angular hiện tại của bạn. - Định cấu hình thủ công: Áp dụng phương án dự phòng cấu hình ở cấp mã bằng cách
đặt
trustProxyHeaders: truetrong cấu hình máy chủ của bạn (xem Định cấu hình tiêu đề proxy đáng tin cậy trong tài liệu Angular).
- Nâng cấp các phần phụ thuộc: Chạy
- Angular v22: Bản dựng đầu tiên trên một phần phụ trợ mới có thể trả về lỗi 400. Để giải quyết vấn đề này, hãy tạo bản dựng thứ hai. Tất cả các bản dựng tiếp theo sẽ hoạt động như dự kiến.
Các giới hạn và biện pháp khắc phục sự cố của Next.js
- Theo mặc định, tính năng tối ưu hoá hình ảnh NextJS tích hợp sẽ bị tắt trên Dịch vụ lưu trữ ứng dụng, trừ phi bạn đặt rõ ràng
images.unoptimizedthành false hoặc sử dụng Trình tải hình ảnh tuỳ chỉnh. Xem phần Tối ưu hoá việc tải hình ảnh trên Next.js. - Các đường dẫn URL chứa ký tự được mã hoá theo phần trăm sẽ được giải mã bởi Cloud Run. Điều này có thể gây ra vấn đề với các tính năng chỉ mong đợi các đường dẫn URL được mã hoá, chẳng hạn như định tuyến song song Next.js.
- Hiện tại, App Hosting giới hạn việc lưu vào bộ nhớ đệm cho các ứng dụng NextJS bằng phần mềm trung gian. Theo thời gian, tỷ lệ truy cập bộ nhớ đệm sẽ cải thiện.
- Các đường dẫn URL chứa ký tự được mã hoá theo phần trăm sẽ được Cloud Run giải mã. Điều này có thể gây ra vấn đề với các tính năng chỉ mong đợi các đường dẫn URL được mã hoá, chẳng hạn như định tuyến song song Next.js