Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

হোস্টিং আচরণ কনফিগার করুন

ফায়ারবেস হোস্টিংয়ের মাধ্যমে, আপনি আপনার সাইটে অনুরোধের জন্য কাস্টমাইজড হোস্টিং আচরণ কনফিগার করতে পারেন।

হোস্টিং এর জন্য আপনি কি কনফিগার করতে পারেন?

  • আপনার স্থানীয় প্রজেক্ট ডিরেক্টরিতে কোন ফাইলগুলি আপনি Firebase হোস্টিংয়ে স্থাপন করতে চান তা নির্দিষ্ট করুন। কিভাবে শিখব.

  • একটি কাস্টমাইজড 404/না পাওয়া পৃষ্ঠা পরিবেশন করুন। কিভাবে শিখব.

  • সেট আপ করুন redirects পৃষ্ঠাগুলির জন্য যে আপনার সরানো বা মুছেছেন। কিভাবে শিখব.

  • সেট আপ করুন rewrites এই উদ্দেশ্যে কোন জন্য:

    • একাধিক URL- এর জন্য একই বিষয়বস্তু দেখান কিভাবে শিখব.

    • একটি ফাংশন পরিবেশন করুন অথবা একটি হোস্টিং URL থেকে একটি ক্লাউড রান কন্টেইনার অ্যাক্সেস করুন। কীভাবে: ফাংশন বা ধারক

    • একটি কাস্টম ডোমেইন ডাইনামিক লিঙ্ক তৈরি করুন। কিভাবে শিখব.

  • যোগ headers যেমন কিভাবে ব্রাউজার পৃষ্ঠা এবং সেটির বিষয়বস্তু (প্রমাণীকরণ, ক্যাশে, এনকোডিং, ইত্যাদি) হ্যান্ডেল উচিত একটি অনুরোধ বা প্রতিক্রিয়া, সম্পর্কে অতিরিক্ত তথ্য বরাবর পাস। কিভাবে শিখব.

  • একটি ব্যবহারকারীর ভাষা পছন্দ এবং/অথবা দেশের উপর ভিত্তি করে নির্দিষ্ট বিষয়বস্তু পরিবেশন করার জন্য আন্তর্জাতিকীকরণ (i18n) পুনর্লিখন সেট আপ করুন। কীভাবে (বিভিন্ন পৃষ্ঠা)।

আপনি কোথায় আপনার হোস্টিং কনফিগারেশন সংজ্ঞায়িত করেন?

তুমি তোমার আপনার Firebase হোস্টিং কনফিগারেশন নির্ধারণ firebase.json ফাইল। Firebase স্বয়ংক্রিয়ভাবে আপনার সৃষ্টি firebase.json যখন আপনি চালাতে আপনার প্রকল্পের ডিরেক্টরি রুট এ ফাইলটি firebase init কমান্ড।

আপনি একটি জানতে পারেন পূর্ণ firebase.json কনফিগারেশন উদাহরণ এই পৃষ্ঠার নীচের অংশে অবস্থিত (শুধুমাত্র Firebase হোস্টিং আচ্ছাদন)। মনে রাখবেন, যে firebase.json ফাইল এছাড়াও থাকতে পারে অন্যান্য Firebase পরিষেবার জন্য কনফিগারেশনের

আপনি মোতায়েন পরীক্ষা করতে পারবেন firebase.json ব্যবহার করে আপনি সামগ্রী হোস্টিং বিশ্রাম এপিআই

হোস্টিং প্রতিক্রিয়াগুলির অগ্রাধিকার আদেশ

এই পৃষ্ঠায় বর্ণিত বিভিন্ন Firebase হোস্টিং কনফিগারেশন অপশন কখনও কখনও ওভারল্যাপ হতে পারে। যদি কোন দ্বন্দ্ব থাকে, তাহলে নিম্নলিখিত অগ্রাধিকার আদেশ ব্যবহার করে হোস্টিং তার প্রতিক্রিয়া নির্ধারণ করে:

  1. সংরক্ষিত নামব্যবধান করে একটি দিয়ে শুরু /__/* পাথ সেগমেন্ট
  2. কনফিগার পুনঃনির্দেশ
  3. স্থির-সামঞ্জস্যপূর্ণ সামগ্রী
  4. কনফিগার করা নতুন করে লেখা হয়
  5. কাস্টম 404 পৃষ্ঠা
  6. ডিফল্ট 404 পৃষ্ঠা

আপনি ব্যবহার করেন, তাহলে i18n নতুন করে লেখা হয় , সঠিক ম্যাচ এবং 404 হ্যান্ডলিং অগ্রাধিকার ক্রম আপনার "i18n বিষয়বস্তু" মিটমাট করা সুযোগ সম্প্রসারিত করা হয়।

কোন ফাইলগুলি স্থাপন করতে হবে তা নির্দিষ্ট করুন

ডিফল্ট বৈশিষ্ট্যাবলী - publicignore - ডিফল্ট অন্তর্ভুক্ত firebase.json ফাইল সংজ্ঞায়িত আপনার প্রকল্পের ডিরেক্টরির মধ্যে যা ফাইলগুলি আপনার Firebase প্রকল্পে মোতায়েন করতে হবে।

ডিফল্ট hosting একটি কনফিগারেশন firebase.json ভালো ফাইল দেখায়:

"hosting": {
  "public": "public",  // the only required attribute for Hosting
  "ignore": [
    "firebase.json",
    "**/.*",
    "**/node_modules/**"
  ]
}

জনসাধারণ

আবশ্যক
public অ্যাট্রিবিউট নির্দিষ্ট করে যা ডিরেক্টরি Firebase হোস্টিং স্থাপন করা। ডিফল্ট মান নামে একজন ডিরেক্টরি হয় public , কিন্তু আপনি যে কোনো ডিরেক্টরির পথে যতদিন এটা আপনার প্রকল্পের ডিরেক্টরির মধ্যে বিদ্যমান উল্লেখ করতে পারেন।

নিচের দিকনির্দেশনাটি নিযুক্ত করার জন্য ডিরেক্টরিটির ডিফল্ট নির্দিষ্ট নাম:

"hosting": {
  "public": "public"

  // ...
}

আপনি যে ডিরেক্টরিটি স্থাপন করতে চান তাতে আপনি ডিফল্ট মান পরিবর্তন করতে পারেন:

"hosting": {
  "public": "dist/app"

  // ...
}

উপেক্ষা

চ্ছিক
ignore অ্যাট্রিবিউট নির্দিষ্ট করে ফাইল স্থাপন উপর উপেক্ষা করার। এটি গ্রহণ করতে পারেন globs একই ভাবে গীত হ্যান্ডলগুলি .gitignore

ফাইলগুলি উপেক্ষা করার জন্য ডিফল্ট মানগুলি নিম্নরূপ:

"hosting": {
  // ...

  "ignore": [
    "firebase.json",  // the Firebase configuration file (the file described on this page)
    "**/.*",  // files with a leading period should be hidden from the system
    "**/node_modules/**"  // contains dependencies used to create your site but not run it
  ]
}

একটি 404/পাওয়া যায় না এমন পৃষ্ঠা কাস্টমাইজ করুন

চ্ছিক
আপনি একটি কাস্টম পরিবেশন করতে পারেন 404 Not Found ত্রুটি যখন একজন ব্যবহারকারী চেষ্টা একটি পৃষ্ঠায় যা বিদ্যমান নেই অ্যাক্সেস করতে।

আপনার প্রকল্পের এর একটি নতুন ফাইল তৈরি public ডিরেক্টরি , এটির নাম 404.html , তারপর আপনার নিজস্ব যোগ 404 Not Found ফাইলে সামগ্রী অন্তর্ভুক্ত রয়েছে।

Firebase এই কাস্টম বিষয়বস্তু প্রদর্শন করা হবে হোস্টিং 404.html একটি ব্রাউজার একটি আরম্ভ করে যদি পৃষ্ঠাটি 404 Not Found আপনার ডোমেন বা সাবডোমেন উপর ত্রুটি।

পুনirectনির্দেশগুলি কনফিগার করুন

চ্ছিক
যদি আপনি একটি পৃষ্ঠা সরিয়ে থাকেন বা ইউআরএল ছোট করেন তবে ভাঙা লিঙ্কগুলি রোধ করতে একটি URL পুন redনির্দেশ ব্যবহার করুন। উদাহরণস্বরূপ, আপনার কাছ থেকে একটি ব্রাউজার পুনর্নির্দেশ পারে example.com/team করার example.com/about.html

একটি তৈরি করে URL টি পুনঃনির্দেশ উল্লেখ করুন redirects গুণ যা বস্তুর একটি অ্যারে রয়েছে (যাকে বলা হয় "পুনর্নির্দেশ নিয়ম")। প্রতিটি নিয়মে, একটি ইউআরএল প্যাটার্ন উল্লেখ করুন, যদি অনুরোধ ইউআরএল পাথের সাথে মিলে যায়, তাহলে নির্দিষ্ট গন্তব্য ইউআরএলে পুন redনির্দেশ দিয়ে সাড়া দিতে হোস্টিং ট্রিগার করে।

এখানে একটি মৌলিক কাঠামো এর redirects অ্যাট্রিবিউট। এই উদাহরণটিতে পুনঃনির্দেশ অনুরোধ /foo করার জন্য একটি নতুন অনুরোধ করে /bar

"hosting": {
  // ...

  // Returns a permanent redirect to "/bar" for requests to "/foo" (but not "/foo/**")
  "redirects": [ {
    "source": "/foo",
    "destination": "/bar",
    "type": 301
  } ]
}

redirects অ্যাট্রিবিউট পুনর্নির্দেশ বিধি, যেখানে প্রতিটি নিয়ম নীচের টেবিলে ক্ষেত্র অন্তর্ভুক্ত করা আবশ্যক একটি অ্যারের ধারণ করে।

Firebase হোস্টিং তুলনা source বা regex যে অনুরোধ শুরুতে সব URL টি পাথ বিরুদ্ধে মান (সামনে ব্রাউজার নির্ধারণ করে একটি ফাইল বা ফোল্ডার সেই পথ এ বিদ্যমান কিনা)। একটি মিল খুঁজে পাওয়া যায়, তাহলে Firebase হোস্টিং উৎপত্তি সার্ভারটি একটি HTTPS দ্বারা পুনর্নির্দেশ একটি নতুন অনুরোধ করতে ব্রাউজার কহন প্রতিক্রিয়া পাঠায় destination URL টি।

মাঠ বর্ণনা
redirects
source (প্রস্তাবিত)
বা regex

একটি ইউআরএল প্যাটার্ন, যদি প্রাথমিক অনুরোধের ইউআরএলের সাথে মিলে যায়, তবে পুনingনির্দেশ প্রয়োগ করার জন্য হোস্টিংকে ট্রিগার করে

destination

একটি স্ট্যাটিক ইউআরএল যেখানে ব্রাউজারের একটি নতুন অনুরোধ করা উচিত

এই URL একটি আপেক্ষিক বা পরম পথ হতে পারে।

type

HTTPS রেসপন্স কোড

  • এক ধরনের ব্যবহার করুন 301 'স্থায়ীভাবে স্থানান্তরিত' এর জন্য
  • এক ধরনের ব্যবহার করুন 302 জন্য 'খুঁজে পাওয়া যায়নি (অস্থায়ী পুনর্নিদেশ)

পুনirectনির্দেশের জন্য ইউআরএল বিভাগগুলি ক্যাপচার করুন

চ্ছিক
কখনও কখনও, আপনি একটি পুনর্নির্দেশ নিয়ম এর URL প্যাটার্ন (দখলের নির্দিষ্ট বিভাগগুলির প্রয়োজন হতে পারে source বা regex , মান) তাহলে নিয়ম এর এই বিভাগগুলিতে পুনঃ-ব্যবহার করে destination পথ।

পুনর্লিখন কনফিগার করুন

চ্ছিক
একাধিক URL- এর জন্য একই বিষয়বস্তু দেখানোর জন্য একটি পুনর্লিখন ব্যবহার করুন। পুনর্লিখনগুলি প্যাটার্ন মিলের সাথে বিশেষভাবে দরকারী, কারণ আপনি প্যাটার্নের সাথে মেলে এমন যেকোনো ইউআরএল গ্রহণ করতে পারেন এবং ক্লায়েন্ট-সাইড কোডটি কী প্রদর্শন করতে হবে তা নির্ধারণ করতে পারেন।

এছাড়াও, আপনি এখানে অ্যাপ্লিকেশানগুলি সমর্থন করার জন্য নতুন করে লেখা হয় ব্যবহার করতে পারেন HTML5 এর pushState নেভিগেশনের জন্য। একটি ব্রাউজার প্রচেষ্টা একটি URL পথ যা নির্দিষ্ট ম্যাচ খুলতে যখন source বা regex URL প্যাটার্ন, ব্রাউজার এ ফাইলের বিষয়বস্তু দেওয়া হবে destination পরিবর্তে URL টি।

নির্দিষ্ট করে এমন url একটি তৈরি করে নতুন করে লেখা হয় rewrites গুণ যা বস্তুর একটি অ্যারে রয়েছে (যাকে বলা হয় "লেখা নিয়ম")। প্রতিটি নিয়মে, একটি ইউআরএল প্যাটার্ন উল্লেখ করুন, যদি অনুরোধ ইউআরএল পাথের সাথে মিলে যায়, তাহলে হোস্টিংকে ট্রিগার করে সাড়া দেওয়ার জন্য যেন পরিষেবাটিকে নির্দিষ্ট গন্তব্য ইউআরএল দেওয়া হয়।

এখানে একটি মৌলিক কাঠামো এর rewrites অ্যাট্রিবিউট। এই উদাহরণটিতে তোলে index.html ফাইল বা ডিরেক্টরি যে উপস্থিত না থাকার অনুরোধ জন্য।

"hosting": {
  // ...

  // Serves index.html for requests to files or directories that do not exist
  "rewrites": [ {
    "source": "**",
    "destination": "/index.html"
  } ]
}

rewrites অ্যাট্রিবিউট লেখা বিধি, যেখানে প্রতিটি নিয়ম নীচের টেবিলে ক্ষেত্র অন্তর্ভুক্ত করা আবশ্যক একটি অ্যারের ধারণ করে।

Firebase হোস্টিং শুধুমাত্র একটি লেখা বিধিটি প্রয়োগ একটি ফাইল অথবা ডাইরেক্টরি একটি এমন URL পথ উল্লিখিত সাথে মিলে যায় আর বিদ্যমান নেই source বা regex URL প্যাটার্ন। একটি অনুরোধ একটি লেখা নিয়ম আরম্ভ করে, তখন ব্রাউজার আয় নিদিষ্ট প্রকৃত বিষয়বস্তু destination পরিবর্তে একটি HTTP পুনর্নির্দেশ এর ফাইল।

মাঠ বর্ণনা
rewrites
source (প্রস্তাবিত)
বা regex

একটি ইউআরএল প্যাটার্ন, যদি প্রাথমিক অনুরোধের ইউআরএলের সাথে মিলে যায়, পুনর্লিখন প্রয়োগ করতে হোস্টিং ট্রিগার করে

destination

একটি স্থানীয় ফাইল যা বিদ্যমান থাকা আবশ্যক

এই URL একটি আপেক্ষিক বা পরম পথ হতে পারে।

একটি ফাংশনের জন্য সরাসরি অনুরোধ

আপনি ব্যবহার করতে পারেন rewrites একটি Firebase হোস্টিং URL থেকে একটি ফাংশন পরিবেশন করা। নিম্নলিখিত উদাহরণে থেকে একটি উদ্ধৃতাংশ হয় ক্লাউড ফাংশন ব্যবহার করে ডায়নামিক সামগ্রী ভজনা

উদাহরণস্বরূপ, পাতা থেকে সমস্ত অনুরোধ নির্দেশ /bigben আপনার হোস্টিং সাইটের চালানো উপর bigben ফাংশন:

"hosting": {
  // ...

  // Directs all requests from the page `/bigben` to execute the `bigben` function
  "rewrites": [ {
    "source": "/bigben",
    "function": "bigben"
  } ]
}

এই লেখা নিয়ম যুক্ত করা এবং Firebase নিয়োজনের (ব্যবহার করার পর firebase deploy ), আপনার ফাংশন নিম্নলিখিত URL গুলি মাধ্যমে যোগাযোগ করা যাবে:

  • আপনার Firebase সাবডোমেন:
    PROJECT_ID .web.app/bigben এবং PROJECT_ID .firebaseapp.com/bigben

  • কোন সংযুক্ত কাস্টম ডোমেন :
    CUSTOM_DOMAIN /bigben

যখন হোস্টিং সঙ্গে ফাংশন অনুরোধ পুনঃনির্দেশিত, সমর্থিত HTTP অনুরোধ পদ্ধতি GET , POST , HEAD , PUT , DELETE , PATCH , এবং OPTIONS । মত অন্যান্য পদ্ধতি REPORT বা PROFIND সমর্থিত নয়।

ক্লাউড রান পাত্রে সরাসরি অনুরোধ

আপনি ব্যবহার করতে পারেন rewrites একটি Firebase হোস্টিং URL থেকে একটি মেঘ চালান ধারক অ্যাক্সেস করতে। নিম্নলিখিত উদাহরণে থেকে একটি উদ্ধৃতাংশ হয় ক্লাউড চালান ব্যবহার ডায়নামিক সামগ্রী ভজনা

উদাহরণস্বরূপ, পাতা থেকে সমস্ত অনুরোধ নির্দেশ /helloworld প্রারম্ভে এবং একটি চলমান প্রক্রিয়া শুরু করতে আপনার হোস্টিং সাইটে helloworld ধারক উদাহরণস্বরূপ:

"hosting": {
 // ...

 // Directs all requests from the page `/helloworld` to trigger and run a `helloworld` container
 "rewrites": [ {
   "source": "/helloworld",
   "run": {
     "serviceId": "helloworld",  // "service name" (from when you deployed the container image)
     "region": "us-central1"  // optional (if omitted, default is us-central1)
   }
 } ]
}

এই লেখা নিয়ম যুক্ত করা এবং Firebase নিয়োজনের (ব্যবহার করার পর firebase deploy ), আপনার ধারক চিত্রটি নিম্নলিখিত URL গুলি মাধ্যমে যোগাযোগ করা যাবে:

  • আপনার Firebase সাবডোমেন:
    PROJECT_ID .web.app/helloworld এবং PROJECT_ID .firebaseapp.com/helloworld

  • কোন সংযুক্ত কাস্টম ডোমেন :
    CUSTOM_DOMAIN /helloworld

যখন হোস্টিং সঙ্গে ক্লাউড চালান পাত্রে অনুরোধ পুনঃনির্দেশিত, সমর্থিত HTTP অনুরোধ পদ্ধতি GET , POST , HEAD , PUT , DELETE , PATCH , এবং OPTIONS । মত অন্যান্য পদ্ধতি REPORT বা PROFIND সমর্থিত নয়।

বর্তমানে, আপনি নিম্নলিখিত অঞ্চলে হোস্টিং সহ ক্লাউড রান পুনর্লিখন ব্যবহার করতে পারেন:

  • asia-east1
  • asia-east2
  • asia-northeast1
  • asia-northeast2
  • asia-northeast3
  • asia-south1
  • asia-southeast1
  • asia-southeast2
  • australia-southeast1
  • europe-north1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • europe-west6
  • northamerica-northeast1
  • southamerica-east1
  • us-central1
  • us-east1
  • us-east4
  • us-west1

আপনি ব্যবহার করতে পারেন rewrites কাস্টম ডোমেন ডায়নামিক লিঙ্ক তৈরি করুন। সম্পর্কে বিস্তারিত তথ্যের জন্য ডায়নামিক লিংক ডকুমেন্টেশন যান ডায়নামিক লিংক জন্য একটি কাস্টম ডোমেন সেট আপ

  • শুধুমাত্র ডায়নামিক লিংক জন্য আপনার কাস্টম ডোমেন ব্যবহার

    "hosting": {
      // ...
    
      "appAssociation": "AUTO",  // required for Dynamic Links (default is AUTO if not specified)
    
      // Add the "rewrites" attribute within "hosting"
      "rewrites": [ {
        "source": "/**",  // the Dynamic Links start with "https://CUSTOM_DOMAIN/"
        "dynamicLinks": true
      } ]
    }
    
  • ডায়নামিক লিঙ্কগুলির জন্য ব্যবহার করার জন্য কাস্টম ডোমেন পাথ উপসর্গগুলি নির্দিষ্ট করুন

    "hosting": {
      // ...
    
      "appAssociation": "AUTO",  // required for Dynamic Links (default is AUTO if not specified)
    
      // Add the "rewrites" attribute within "hosting"
      "rewrites": [ {
        "source": "/promos/**",  // the Dynamic Links start with "https://CUSTOM_DOMAIN/promos/"
        "dynamicLinks": true
      }, {
        "source": "/links/share/**",  // the Dynamic Links start with "https://CUSTOM_DOMAIN/links/share/"
        "dynamicLinks": true
      } ]
    }
    

আপনার কনফিগার ডায়নামিক লিংক firebase.json ফাইলের মধ্যে নিম্নলিখিত প্রয়োজন:

মাঠ বর্ণনা
appAssociation

সেট থাকা উচিত AUTO

  • আপনি আপনার কনফিগারেশন এই বৈশিষ্ট্য অন্তর্ভুক্ত করবেন না, তাহলে ডিফল্ট appAssociation হয় AUTO
  • এই বৈশিষ্ট্য সেট করে AUTO , হোস্টিং পরিবর্তনশীল তৈরি করতে পারেন assetlinks.json এবং apple-app-site-association ফাইল যখন তারা অনুরোধ করছি।
rewrites
source

একটি পথ যা আপনি ডায়নামিক লিঙ্কগুলির জন্য ব্যবহার করতে চান

ইউআরএলগুলিতে পাথগুলি পুনর্লিখনের নিয়মগুলির বিপরীতে, ডায়নামিক লিঙ্কগুলির জন্য পুনর্লিখনের নিয়মগুলিতে নিয়মিত এক্সপ্রেশন থাকতে পারে না।

dynamicLinks সেট থাকা উচিত true

হেডার কনফিগার করুন

চ্ছিক
হেডার ক্লায়েন্ট এবং সার্ভারকে অনুরোধ বা প্রতিক্রিয়া সহ অতিরিক্ত তথ্য পাস করার অনুমতি দেয়। শিরোলেখের কিছু সেট ব্রাউজার কীভাবে পৃষ্ঠা এবং এর সামগ্রী পরিচালনা করে তা প্রভাবিত করতে পারে, যার মধ্যে রয়েছে অ্যাক্সেস নিয়ন্ত্রণ, প্রমাণীকরণ, ক্যাশিং এবং এনকোডিং।

একটি তৈরি করে কাস্টম উল্লেখ করুন, ফাইল-নির্দিষ্ট প্রতিক্রিয়া হেডার headers গুণ যা হেডার বস্তুর একটি অ্যারে রয়েছে। প্রতিটি বস্তুর মধ্যে, একটি ইউআরএল প্যাটার্ন উল্লেখ করুন, যদি অনুরোধ ইউআরএল পাথের সাথে মিলে যায়, তাহলে নির্দিষ্ট কাস্টম রেসপন্স হেডার প্রয়োগ করতে হোস্টিং ট্রিগার করে।

এখানে একটি মৌলিক কাঠামো এর headers অ্যাট্রিবিউট। এই উদাহরণটি সমস্ত ফন্ট ফাইলের জন্য একটি CORS হেডার প্রযোজ্য।

"hosting": {
  // ...

  // Applies a CORS header for all font files
  "headers": [ {
    "source": "**/*.@(eot|otf|ttf|ttc|woff|font.css)",
    "headers": [ {
      "key": "Access-Control-Allow-Origin",
      "value": "*"
    } ]
  } ]
}

headers অ্যাট্রিবিউট সংজ্ঞা, যেখানে প্রতিটি সংজ্ঞা নীচের টেবিলে ক্ষেত্র অন্তর্ভুক্ত করা আবশ্যক একটি অ্যারের ধারণ করে।

মাঠ বর্ণনা
headers
source (প্রস্তাবিত)
বা regex

একটি ইউআরএল প্যাটার্ন যা প্রাথমিক অনুরোধের ইউআরএলের সাথে মিলে গেলে, কাস্টম হেডার প্রয়োগ করতে হোস্টিং ট্রিগার করে

একটি শিরোলেখ আপনার বিরুদ্ধে মেলে তৈরি করতে কাস্টম 404 পৃষ্ঠাতে ব্যবহার 404.html আপনার যেমন source বা regex মান।

(উপ-) অ্যারে headers

কাস্টম হেডার যা হোস্টিং অনুরোধের পথে প্রযোজ্য

প্রতিটি সাব-হেডার একটি অন্তর্ভুক্ত করা আবশ্যক key এবং value যুগল (পরবর্তী দুই সারি দেখুন)।

key শিরোনামের নাম, উদাহরণস্বরূপ Cache-Control
value হেডার জন্য মান উদাহরণস্বরূপ, max-age=7200

আপনি সম্পর্কে আরও জানতে পারেন Cache-Control হোস্টিং অধ্যায় যে ডায়নামিক সামগ্রী এবং হোস্টিং microservices ভজনা বর্ণনা করেন। এছাড়াও আপনি সম্পর্কে আরও জানতে পারেন CORS হেডার।

কন্ট্রোল .html এক্সটেনশন

চ্ছিক
cleanUrls অ্যাট্রিবিউট আপনাকে তা নিয়ন্ত্রণ করার থাকুক বা না থাকুক URL গুলি অন্তর্ভুক্ত করা উচিত পারবেন .html এক্সটেনশন।

যখন true , স্বয়ংক্রিয়ভাবে হোস্টিং ড্রপ .html আপলোড করা ফাইলের URL গুলি থেকে এক্সটেনশান। একটি এমন .html এক্সটেনশন অনুরোধে যোগ করা হয়, হোস্টিং সঞ্চালিত একটি 301 একই পথে পুনর্নির্দেশ কিন্তু ঘটিয়েছে .html এক্সটেনশন।

এখানে কিভাবে অন্তর্ভুক্তি নিয়ন্ত্রণ করার .html একটি অন্তর্ভুক্ত করে URL গুলিতে cleanUrls অ্যাট্রিবিউট:

"hosting": {
  // ...

  // Drops `.html` from uploaded URLs
  "cleanUrls": true
}

পিছনের স্ল্যাশ নিয়ন্ত্রণ করুন

চ্ছিক
trailingSlash অ্যাট্রিবিউট আপনাকে তা নিয়ন্ত্রণ করার থাকুক বা না থাকুক স্ট্যাটিক কন্টেন্ট URL গুলি trailing স্ল্যাশ অন্তর্ভুক্ত করা উচিত দেয়।

  • যখন true , হোস্টিং পুনঃনির্দেশ URL গুলি একটি trailing স্ল্যাশ যোগ করতে।
  • যখন false , হোস্টিং পুনঃনির্দেশ URL গুলি একটি trailing স্ল্যাশ মুছে ফেলার জন্য।
  • যখন ডিরেক্টরির সূচক ফাইলের জন্য অনির্দিষ্ট, হোস্টিং শুধুমাত্র trailing ব্যবহার স্ল্যাশ (উদাহরণস্বরূপ, about/index.html )।

এখানে কিভাবে একটি যোগ করে স্ল্যাশ trailing নিয়ন্ত্রণ করার trailingSlash অ্যাট্রিবিউট:

"hosting": {
  // ...

  // Removes trailing slashes from URLs
  "trailingSlash": false
}

trailingSlash অ্যাট্রিবিউট ক্লাউড কার্যাবলী বা ক্লাউড চালান দ্বারা পরিবেশিত গতিশীল কন্টেন্ট নতুন করে লেখা হয় প্রভাবিত করে না।

গ্লোব প্যাটার্ন ম্যাচিং

Firebase হোস্টিং কনফিগারেশন অপশনের ব্যাপক ব্যবহার করতে উল্লিখিত glob প্যাটার্ন ম্যাচিং কিভাবে গীত হ্যান্ডলগুলি থেকে extglob, অনুরূপ সঙ্গে স্বরলিপি gitignore নিয়ম এবং আবাস হ্যান্ডলগুলি ignore নিয়ম। এই উইকি পাতা আরো বিস্তারিত রেফারেন্স, কিন্তু নিম্নলিখিত এই পৃষ্ঠায় ব্যবহৃত উদাহরণ ব্যাখ্যা হল:

  • firebase.json - কেবলমাত্র ম্যাচ firebase.json রুট ফাইল public ডিরেক্টরি

  • ** - একটি অবাধ উপ-ডিরেক্টরির মধ্যে যেকোনো ফাইল অথবা ফোল্ডার মেলে

  • * - কেবলমাত্র রুট ফাইল এবং ফোল্ডার সাথে মেলে public ডিরেক্টরি

  • **/.* - মিল সহ যেকোনো ফাইল শুরুতে . (সাধারণত ফাইল লুকানো মত .git একটি অবাধ উপ-ডিরেক্টরির মধ্যে ফোল্ডার)

  • **/node_modules/** - একটি এর একটি অবাধ উপ-ডিরেক্টরির মধ্যে যেকোনো ফাইল অথবা ফোল্ডার মেলে node_modules ফোল্ডারের, যা নিজেই একটি অবাধ উপ-ডিরেক্টরির মধ্যে হতে পারে public ডিরেক্টরি

  • **/*.@(jpg|jpeg|gif|png) - একটি অবাধ উপ-ডিরেক্টরির মধ্যে যেকোনো ফাইল সাথে মেলায় নিম্নলিখিত ঠিক একটি দিয়ে শেষ হয়: .jpg , .jpeg , .gif , অথবা .png

সম্পূর্ণ হোস্টিং কনফিগারেশনের উদাহরণ

নিম্নলিখিত একটি পূর্ণ firebase.json Firebase হোস্টিং জন্য কনফিগারেশন উদাহরণ। মনে রাখবেন, যে firebase.json ফাইল এছাড়াও থাকতে পারে অন্যান্য Firebase পরিষেবার জন্য কনফিগারেশনের

{
  "hosting": {

    "public": "dist/app",  // "public" is the only required attribute for Hosting

    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],

    "redirects": [ {
      "source": "/foo",
      "destination": "/bar",
      "type": 301
    }, {
      "source": "/firebase/**",
      "destination": "https://www.firebase.com",
      "type": 302
    } ],

    "rewrites": [ {
      // Shows the same content for multiple URLs
      "source": "/app/**",
      "destination": "/app/index.html"
    }, {
      // Configures a custom domain for Dynamic Links
      "source": "/promos/**",
      "dynamicLinks": true
    }, {
      // Directs a request to Cloud Functions
      "source": "/bigben",
      "function": "bigben"
    }, {
      // Directs a request to a Cloud Run containerized app
      "source": "/helloworld",
      "run": {
        "serviceId": "helloworld",
        "region": "us-central1"
      }
    } ],

    "headers": [ {
      "source": "**/*.@(eot|otf|ttf|ttc|woff|font.css)",
      "headers": [ {
        "key": "Access-Control-Allow-Origin",
        "value": "*"
      } ]
    }, {
      "source": "**/*.@(jpg|jpeg|gif|png)",
      "headers": [ {
        "key": "Cache-Control",
        "value": "max-age=7200"
      } ]
    }, {
      "source": "404.html",
      "headers": [ {
        "key": "Cache-Control",
        "value": "max-age=300"
      } ]
    } ],

    "cleanUrls": true,

    "trailingSlash": false,

    // Required to configure custom domains for Dynamic Links
    "appAssociation": "AUTO",

  }
}