FAQ এবং সমস্যা সমাধান

এই পাতায় App Hosting সম্পর্কিত প্রায়শই জিজ্ঞাসিত প্রশ্নাবলীর (FAQs) উত্তর দেওয়া হয়েছে।

App Hosting প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী

App Hosting সাধারণ সীমাবদ্ধতা এবং সমস্যা সমাধান

  • Cloud Run পরিকাঠামোর একটি সমস্যার কারণে, us-central1 এর মতো কিছু অঞ্চলে রিসোর্স তৈরি বা আপডেট করা প্রত্যাশার চেয়ে ধীর হতে পারে। যদি কোনো নির্দিষ্ট অঞ্চলে ডেপ্লয়মেন্ট বিলম্ব একটি সমস্যা হয়ে দাঁড়ায়, তবে গুগল অন্য কোনো অঞ্চলে ডেপ্লয় করার পরামর্শ দেয়।
  • App Hosting -এর সিডিএন তার ক্যাশ কী-তে শুধুমাত্র একটি নির্দিষ্ট সেট রিকোয়েস্ট হেডার অন্তর্ভুক্ত করতে পারে। সেই তালিকায় রয়েছে NextJS-এর RSC , Next-Router-State-Tree , Next-Router-Prefetch , Next-Router-Segment-Prefetch , এবং Next-Url হেডার, সেইসাথে ক্লাউড সিডিএন-এর স্ট্যান্ডার্ড 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 হেডার থাকে, তাহলে আমাদের সিডিএন সেটি ক্যাশ করবে না।
  • আনক্যাশড স্ট্যাটিক ফাইলগুলো Cloud Run থেকে পরিবেশন করা হয়; পরবর্তী কোনো রিলিজে, আরও ভালো পারফরম্যান্সের জন্য এগুলো App Hosting অরিজিন থেকে সংরক্ষণ ও পরিবেশন করা হবে।
  • ব্যাকএন্ড তৈরির সময় Firebase কনসোলে মাঝে মাঝে "বিল্ডটি খুঁজে পাওয়া যায়নি এবং এটি অবৈধ" এই ত্রুটি দেখা যেতে পারে।
  • একই প্রোজেক্টের সমস্ত ব্যাকএন্ড একটি গিটহাব অর্গ/অ্যাকাউন্ট শেয়ার করে। সেগুলোকে সেই অর্গ/অ্যাকাউন্টের অধীনে থাকা বিভিন্ন রিপোজিটরির সাথে সংযুক্ত করা যেতে পারে। বিভিন্ন গিটহাব অ্যাকাউন্টের সাথে সংযুক্ত ব্যাকএন্ড তৈরি করতে, সেগুলোকে আলাদা প্রোজেক্টে রাখুন।

অ্যাঙ্গুলার অ্যাপের সীমাবদ্ধতা এবং সমস্যা সমাধান

যদিও অ্যাঙ্গুলারের জন্য App Hosting সাপোর্টের সক্রিয়ভাবে উন্নয়ন ও সম্প্রসারণ চলছে, এর নিম্নলিখিত সীমাবদ্ধতাগুলো রয়েছে:

  • I18n : যদিও মূল I18n কার্যকারিতা কাজ করে, সরাসরি SSR পেজে নেভিগেট করলে ত্রুটি দেখা দিতে পারে।
  • স্থানীয়করণ : বিভিন্ন অঞ্চলের জন্য সংস্করণ তৈরি করা সমর্থিত নয়।
  • বিল্ডার : বর্তমানে শুধুমাত্র অ্যাপ্লিকেশন বিল্ডার সমর্থিত।
  • এনভায়রনমেন্ট ও মোনোরেপো টুলিং : যেসব অ্যাঙ্গুলার প্রোজেক্টে একাধিক অ্যাপ্লিকেশন টার্গেট থাকে, সেগুলো ব্যর্থ হবে। আরও পূর্ণাঙ্গ মোনোরেপো সাপোর্টের জন্য Nx ব্যবহার করুন।

অ্যাঙ্গুলার এসএসআর-এ HTTP 400 ত্রুটি এবং প্রক্সি ট্রাস্ট

আপনার Firebase App Hosting এ ডেপ্লয় করা Angular অ্যাপ্লিকেশনটিতে যদি HTTP 400 (Bad Request) এরর, হোস্ট ভ্যালিডেশন ব্লকার, বা প্রক্সি ট্রাস্ট ফেইলিউর দেখা দেয়, তাহলে আপনার Angular ভার্সনের জন্য প্রস্তাবিত সমাধানটি অনুসরণ করুন:

  • Angular v19, v20, এবং v21 : এই HTTP 400 ত্রুটিগুলি সমাধান করার দুটি উপায় রয়েছে:
    • ডিপেন্ডেন্সি আপগ্রেড করুন: আপনার বর্তমান অ্যাঙ্গুলার ভার্সনের জন্য সর্বশেষ প্যাচ রিলিজ ইনস্টল করতে npm update @angular/core @angular/ssr চালান।
    • ম্যানুয়াল কনফিগারেশন: আপনার সার্ভার কনফিগারেশনে trustProxyHeaders: true সেট করে একটি কোড-লেভেল কনফিগারেশন ফলব্যাক প্রয়োগ করুন (Angular ডকুমেন্টেশনে ‘Configuring trusted proxy headers’ দেখুন)।
  • Angular v22 : একটি নতুন ব্যাকএন্ডে প্রথম বিল্ডে 400 এরর আসতে পারে। সমস্যাটি সমাধান করতে, একটি দ্বিতীয় বিল্ড তৈরি করুন। এরপরের সমস্ত বিল্ড সঠিকভাবে কাজ করবে।

Next.js-এর সীমাবদ্ধতা এবং সমস্যা সমাধান

  • ডিফল্টরূপে, অ্যাপ হোস্টিং-এ NextJS-এর বিল্ট-ইন ইমেজ অপটিমাইজেশন নিষ্ক্রিয় থাকে, যদি না আপনি স্পষ্টভাবে images.unoptimized কে false সেট করেন অথবা একটি কাস্টম ইমেজ লোডার ব্যবহার করেন। Next.js-এ ইমেজ লোডিং অপটিমাইজ করার জন্য দেখুন।
  • পার্সেন্ট-এনকোডেড অক্ষরযুক্ত ইউআরএল পাথ Cloud Run দ্বারা ডিকোড করা হয়। এর ফলে এমন সব ফিচারের ক্ষেত্রে সমস্যা হতে পারে, যেগুলো শুধুমাত্র এনকোডেড ইউআরএল পাথ আশা করে, যেমন নেক্সট.জেএস প্যারালাল রাউটিং।
  • বর্তমানে, App Hosting মিডলওয়্যার ব্যবহার করে নেক্সটজেএস অ্যাপের ক্যাশিং সীমিত করে। সময়ের সাথে সাথে, ক্যাশ হিট রেট উন্নত হবে বলে আশা করা যায়।
  • পার্সেন্ট-এনকোডেড অক্ষরযুক্ত ইউআরএল পাথ ক্লাউড রান দ্বারা ডিকোড করা হয়। এর ফলে এমন সব ফিচারের ক্ষেত্রে সমস্যা হতে পারে যেগুলো শুধুমাত্র এনকোডেড ইউআরএল পাথ আশা করে, যেমন নেক্সট.জেএস প্যারালাল রাউটিং।