Google 致力于为黑人社区推动种族平等。查看具体举措

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

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

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

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

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

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

  • এর মধ্যে যে কোনও একটি জন্য rewrites সেট আপ করুন:

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

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

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

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

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

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

আপনি আপনার ফায়ারবেস হোস্টিং কনফিগারেশনটিকে আপনার firebase.json ফাইলে সংজ্ঞায়িত করেছেন। ফায়ারবেস firebase init কমান্ড চালানোর সময় firebase init স্বয়ংক্রিয়ভাবে আপনার প্রকল্প ডিরেক্টরিটির মূলে আপনার firebase.json ফাইল তৈরি করে।

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

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

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

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

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

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

কোন ফাইল স্থাপন করতে হবে তা উল্লেখ করুন

ডিফল্ট বৈশিষ্ট্যগুলি - public এবং ignore - ডিফল্ট firebase.json ফাইলের অন্তর্ভুক্ত আপনার প্রকল্প ডিরেক্টরিতে থাকা ফাইলগুলি আপনার ফায়ারবেস প্রকল্পে স্থাপন করা উচিত তা নির্ধারণ করে।

firebase.json ফাইলে ডিফল্ট hosting কনফিগারেশনটি দেখতে এরকম দেখাচ্ছে:

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

পাবলিক

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

নিম্নলিখিত স্থাপনের জন্য ডিরেক্টরিটির ডিফল্ট নির্দিষ্ট নাম:

0 বি 662e1470

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

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

  // ...
}

উপেক্ষা

.চ্ছিক
ignore এট্রিবিউটটি ignore এড়াতে ফাইলগুলি নির্দিষ্ট করে। গিট .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.html আপনার কাস্টম 404 Not Found সামগ্রী যুক্ত করুন।

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

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

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

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

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

"hosting": {
  // ...

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

redirects বৈশিষ্ট্যটিতে পুনর্নির্দেশের নিয়মের একটি অ্যারে রয়েছে, যেখানে প্রতিটি নিয়ম অবশ্যই নীচের সারণীতে ক্ষেত্রগুলি অন্তর্ভুক্ত করে।

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

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

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

destination

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

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

type

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

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

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

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

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

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

নেভিগেশনের জন্য এইচটিএমএল 5 পুস্টস্টেট ব্যবহার করা অ্যাপ্লিকেশনগুলিকে সমর্থন করতে আপনি পুনরায় লেখাগুলিও ব্যবহার করতে পারেন। একটি ব্রাউজার প্রচেষ্টা একটি URL পথ যা নির্দিষ্ট ম্যাচ খুলতে যখন source বা regex URL প্যাটার্ন, ব্রাউজার এ ফাইলের বিষয়বস্তু দেওয়া হবে destination পরিবর্তে 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 অ্যাট্রিবিউট লেখা বিধি, যেখানে প্রতিটি নিয়ম নীচের টেবিলে ক্ষেত্র অন্তর্ভুক্ত করা আবশ্যক একটি অ্যারের ধারণ করে।

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

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

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

destination

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

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

কোনও ফাংশনে সরাসরি অনুরোধ

আপনি ফায়ারবেস হোস্টিং ইউআরএল থেকে কোনও ফাংশন পরিবেশন করতে rewrites ব্যবহার করতে পারেন। নিম্নলিখিত উদাহরণটি ক্লাউড ফাংশনগুলি ব্যবহার করে গতিশীল বিষয়বস্তু পরিবেশন করার একটি অংশ।

উদাহরণস্বরূপ, bigben ফাংশনটি সম্পাদন করতে আপনার হোস্টিং সাইটে পৃষ্ঠা /bigben থেকে সমস্ত অনুরোধগুলি নির্দেশনা দেওয়ার জন্য:

"hosting": {
  // ...

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

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

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

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

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

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

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

উদাহরণস্বরূপ, 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 deploy ( firebase deploy ব্যবহার করে), আপনার ধারক চিত্রটি নিম্নলিখিত ইউআরএলগুলির মাধ্যমে পৌঁছনীয়:

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

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

হোস্টিং সহ ক্লাউড রান পাত্রে অনুরোধগুলি পুনর্নির্দেশ করার সময়, সমর্থিত এইচটিটিপি অনুরোধ পদ্ধতিগুলি 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 সম্পর্কে আরও শিখতে পারেন যা গতিশীল বিষয়বস্তু সরবরাহ এবং হোস্টিং মাইক্রোসার্চেসগুলি বর্ণনা করে। আপনি সিওআরএস শিরোনাম সম্পর্কে আরও শিখতে পারেন।

.html এক্সটেনশনগুলি নিয়ন্ত্রণ করুন

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

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

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

"hosting": {
  // ...

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

ট্রেলিং স্ল্যাশ নিয়ন্ত্রণ করুন

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

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

trailingSlash বৈশিষ্ট্য যুক্ত করে কীভাবে ট্রেলিং স্ল্যাশগুলি নিয়ন্ত্রণ করতে হবে তা এখানে:

"hosting": {
  // ...

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

trailingSlash বৈশিষ্ট্যটি ক্লাউড ফাংশন বা ক্লাউড রান দ্বারা পরিবেশন করা গতিশীল সামগ্রীর পুনর্লিখনগুলিকে প্রভাবিত করে না।

গ্লোব প্যাটার্ন মিলছে

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

  • firebase.json - কেবলমাত্র public ডিরেক্টরিতে মূলের firebase.json ফাইলের সাথে মেলে

  • ** - একটি স্বেচ্ছাসেবী সাব ডিরেক্টরিতে যে কোনও ফাইল বা ফোল্ডারের সাথে মেলে

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

  • **/.* - যে কোনও ফাইলের সাথে শুরু করে . (সাধারণত .git ফোল্ডারের মতো লুকানো ফাইল) একটি স্বেচ্ছাসেবী সাব-ডিরেক্টরিতে

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

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

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

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

{
  "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",

  }
}