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

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

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

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

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

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

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

    • একাধিক ইউআরএল জন্য একই বিষয়বস্তু প্রদর্শন করুন। কিভাবে শিখব.

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

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

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

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

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

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

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

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

হোস্টিং প্রতিক্রিয়াগুলির অগ্রাধিকার ক্রম

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

  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 আপনার ডোমেন বা সাবডোমেন উপর ত্রুটি।

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

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

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

এখানে একটি মৌলিক কাঠামো এর 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

একটি URL প্যাটার্ন যা প্রাথমিক অনুরোধ URL এর সাথে মিলে গেলে, হোস্টিংকে পুনঃনির্দেশ প্রয়োগ করতে ট্রিগার করে

destination

একটি স্থিতিশীল URL যেখানে ব্রাউজারটি একটি নতুন অনুরোধ করা উচিত

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

type

এইচটিটিপিএস প্রতিক্রিয়া কোড

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

পুনঃনির্দেশগুলির জন্য URL বিভাগগুলি ক্যাপচার করুন

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

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

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

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

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

এখানে একটি মৌলিক কাঠামো এর 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

একটি URL প্যাটার্ন যা প্রাথমিক অনুরোধ URL এর সাথে মিলে গেলে, হোস্টিংটিকে পুনরায় লেখার জন্য প্রয়োগ করে trig

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 গুলি মাধ্যমে যোগাযোগ করা যাবে:

  • আপনার ফায়ারবেস সাবডোমেনস:
    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 গুলি মাধ্যমে যোগাযোগ করা যাবে:

  • আপনার ফায়ারবেস সাবডোমেনস:
    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 গুণ যা হেডার বস্তুর একটি অ্যারে রয়েছে। প্রতিটি বস্তুতে, একটি URL প্যাটার্ন নির্দিষ্ট করুন যা অনুরোধ URL এর সাথে মিলে যায়, নির্দিষ্ট কাস্টম প্রতিক্রিয়া শিরোনাম প্রয়োগ করতে হোস্টিংকে ট্রিগার করে।

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

"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

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

একটি শিরোলেখ আপনার বিরুদ্ধে মেলে তৈরি করতে কাস্টম 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",

  }
}