หน้านี้มีคำตอบสำหรับคำถามที่พบบ่อย (FAQ) เกี่ยวกับ App Hosting
คำถามที่พบบ่อยเกี่ยวกับ App Hosting
ข้อจำกัดและการแก้ปัญหาทั่วไปของ App Hosting
- เนื่องจากปัญหาในโครงสร้างพื้นฐาน,
การสร้างหรืออัปเดตทรัพยากรอาจช้ากว่า
ที่คาดไว้ในบางภูมิภาค เช่น
us-central1Cloud Run หากความหน่วงของการทำให้ใช้งานได้เป็นปัญหาในภูมิภาคใดภูมิภาคหนึ่ง Google ขอแนะนำให้ทำให้ใช้งานได้ในภูมิภาคอื่น - 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 อาจแสดงข้อผิดพลาด "ไม่พบบิลด์และ บิลด์ไม่ถูกต้อง" เป็นระยะๆ เมื่อสร้างแบ็กเอนด์
- แบ็กเอนด์ทั้งหมดในโปรเจ็กต์เดียวกันจะใช้องค์กร/บัญชี GitHub ร่วมกัน และสามารถเชื่อมต่อกับที่เก็บต่างๆ ภายใต้องค์กร/บัญชีนั้นได้ หากต้องการสร้างแบ็กเอนด์ที่เชื่อมต่อกับบัญชี GitHub ที่แตกต่างกัน ให้ใส่แบ็กเอนด์เหล่านั้นไว้ในโปรเจ็กต์แยกต่างหาก
ข้อจำกัดและการแก้ปัญหาของแอป Angular
แม้ว่าการรองรับ Angular ของ App Hosting จะอยู่ระหว่างการพัฒนาและ ขยายการรองรับอย่างต่อเนื่อง แต่ก็มีข้อจำกัดดังนี้
- I18n: แม้ว่าฟังก์ชันการทำงานหลักของ I18n จะทำงานได้ แต่การไปยังหน้า SSR โดยตรงอาจทำให้เกิดข้อผิดพลาด
- การแปลเป็นภาษาท้องถิ่น: ระบบไม่รองรับการสร้างเวอร์ชันสำหรับภาษาต่างๆ
- Builders: ปัจจุบันรองรับเฉพาะ Application builder
- สภาพแวดล้อมและเครื่องมือ Monorepo: โปรเจ็กต์ Angular ที่มีเป้าหมายของแอปพลิเคชันมากกว่า 1 รายการจะล้มเหลว หากต้องการการรองรับ Monorepo ที่สมบูรณ์ยิ่งขึ้น, ใช้ Nx
ข้อผิดพลาด HTTP 400 และการเชื่อถือพร็อกซีใน Angular SSR
หากแอปพลิเคชัน Angular ที่ทำให้ใช้งานได้ใน Firebase App Hosting พบ ข้อผิดพลาด HTTP 400 (คำขอไม่ถูกต้อง) ตัวบล็อกการตรวจสอบโฮสต์ หรือการเชื่อถือพร็อกซี ล้มเหลว ให้ทำตามวิธีแก้ปัญหาที่แนะนำสำหรับ Angular เวอร์ชันของคุณ
- Angular v19, v20 และ v21: คุณมี 2 วิธีในการแก้ข้อผิดพลาด HTTP 400
เหล่านี้:
- อัปเกรดการขึ้นต่อกัน: เรียกใช้
npm update @angular/core @angular/ssrเพื่อติดตั้งการเผยแพร่แพตช์ล่าสุดสำหรับ Angular เวอร์ชันปัจจุบัน - การกำหนดค่าด้วยตนเอง: ใช้การกำหนดค่าระดับโค้ดเป็นตัวเลือกสำรองโดย
ตั้งค่า
trustProxyHeaders: trueในการกำหนดค่าเซิร์ฟเวอร์ (ดู การกำหนดค่าส่วนหัวของพร็อกซีที่เชื่อถือได้ในเอกสารประกอบของ Angular)
- อัปเกรดการขึ้นต่อกัน: เรียกใช้
- Angular v22: บิลด์แรกในแบ็กเอนด์ใหม่อาจแสดงข้อผิดพลาด 400 หากต้องการแก้ปัญหา ให้สร้างบิลด์ที่ 2 บิลด์ทั้งหมดหลังจากนั้นควรทำงานตามที่ตั้งใจไว้
ข้อจำกัดและการแก้ปัญหาของ Next.js
- โดยค่าเริ่มต้น ระบบจะปิดใช้การเพิ่มประสิทธิภาพรูปภาพในตัวของ NextJS ใน App
Hosting เว้นแต่คุณจะตั้งค่า
images.unoptimizedเป็น "false" อย่างชัดแจ้ง หรือใช้ Image Loader ที่กำหนดเอง ดู เพิ่มประสิทธิภาพการโหลดรูปภาพใน Next.js - Cloud Run จะถอดรหัสเส้นทาง URL ที่มีอักขระที่เข้ารหัสเปอร์เซ็นต์ Cloud Run. ซึ่งอาจทำให้เกิดปัญหาเกี่ยวกับฟีเจอร์ที่คาดหวังเฉพาะเส้นทาง URL ที่เข้ารหัสเท่านั้น เช่น การกำหนดเส้นทางแบบขนานของ Next.js
- ปัจจุบัน App Hosting จำกัดการแคชสำหรับแอป NextJS ที่ใช้ มิดเดิลแวร์. อัตราการพบแคชควรดีขึ้นเมื่อเวลาผ่านไป
- Cloud Run จะถอดรหัสเส้นทาง URL ที่มีอักขระที่เข้ารหัสเปอร์เซ็นต์ ซึ่งอาจทำให้เกิดปัญหาเกี่ยวกับฟีเจอร์ที่คาดหวังเฉพาะเส้นทาง URL ที่เข้ารหัสเท่านั้น เช่น การกำหนดเส้นทางแบบขนานของ Next.js