คำถามที่พบบ่อยและการแก้ปัญหา

หน้านี้มีคำตอบสำหรับคำถามที่พบบ่อย (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