होस्टिंग व्यवहार कॉन्फ़िगर करें

फायरबेस होस्टिंग के साथ, आप अपनी साइट के अनुरोधों के लिए अनुकूलित होस्टिंग व्यवहार को कॉन्फ़िगर कर सकते हैं।

आप होस्टिंग के लिए क्या कॉन्फ़िगर कर सकते हैं?

  • निर्दिष्ट करें कि आप अपने स्थानीय प्रोजेक्ट निर्देशिका में कौन-सी फ़ाइलें Firebase होस्टिंग पर परिनियोजित करना चाहते हैं। कैसे सीखें।

  • एक अनुकूलित 404/नहीं मिला पृष्ठ परोसें। कैसे सीखें।

  • सेट करें redirects पृष्ठों के लिए है कि आप चले गए या नष्ट नहीं किया। कैसे सीखें।

  • सेट करें rewrites इन उद्देश्यों में से किसी के लिए:

    • अनेक URL के लिए समान सामग्री दिखाएं. कैसे सीखें।

    • एक होस्टिंग यूआरएल से एक फ़ंक्शन परोसें या क्लाउड रन कंटेनर तक पहुंचें। जानें कैसे: समारोह या कंटेनर

    • एक कस्टम डोमेन डायनामिक लिंक बनाएं। कैसे सीखें।

  • जोड़े headers ऐसे कैसे ब्राउज़र पृष्ठ और उसकी सामग्री (प्रमाणीकरण, कैशिंग, एन्कोडिंग, आदि) संभाल चाहिए के रूप में एक अनुरोध या एक प्रतिक्रिया, के बारे में अतिरिक्त जानकारी के साथ दी जाने वाली। कैसे सीखें।

  • उपयोगकर्ता की भाषा वरीयता और/या देश के आधार पर विशिष्ट सामग्री परोसने के लिए अंतर्राष्ट्रीयकरण (i18n) सेट करें। जानें कैसे (अलग पृष्ठ)।

आप अपने होस्टिंग कॉन्फ़िगरेशन को कहाँ परिभाषित करते हैं?

आप अपने में अपने Firebase होस्टिंग विन्यास को परिभाषित firebase.json फ़ाइल। Firebase स्वचालित रूप से आपके बनाता firebase.json जब आप चलाने के लिए अपनी परियोजना निर्देशिका की जड़ में फ़ाइल firebase init कमांड।

तुम एक पा सकते हैं पूर्ण firebase.json विन्यास उदाहरण इस पृष्ठ के तल पर (केवल Firebase होस्टिंग कवर)। ध्यान दें कि एक firebase.json फ़ाइल भी शामिल कर सकते हैं अन्य Firebase सेवाओं के लिए विन्यास

आप तैनात की जांच कर सकते firebase.json का उपयोग कर सामग्री होस्टिंग REST API

होस्टिंग प्रतिक्रियाओं का प्राथमिकता क्रम

इस पृष्ठ पर वर्णित विभिन्न फायरबेस होस्टिंग कॉन्फ़िगरेशन विकल्प कभी-कभी ओवरलैप हो सकते हैं। यदि कोई विरोध होता है, तो होस्टिंग निम्नलिखित प्राथमिकता क्रम का उपयोग करके अपनी प्रतिक्रिया निर्धारित करती है:

  1. सुरक्षित नामस्थान है कि एक के साथ शुरू /__/* पथ सेगमेंट
  2. कॉन्फ़िगर किया गया रीडायरेक्ट
  3. सटीक मिलान स्थिर सामग्री static
  4. कॉन्फ़िगर किया गया पुनर्लेखन
  5. कस्टम 404 पेज
  6. डिफ़ॉल्ट 404 पृष्ठ4

आप उपयोग कर रहे हैं i18n पुनर्लेखन , सटीक मेल खाने वाला और 404 से निपटने के प्राथमिकता क्रम अपने "i18n सामग्री" को समायोजित करने के दायरे में विस्तार कर रहे हैं।

निर्दिष्ट करें कि कौन सी फाइलें तैनात करनी हैं

डिफ़ॉल्ट के गुण - public और ignore - डिफ़ॉल्ट में शामिल 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 एक ही तरीका है कि Git हैंडल .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 अपने डोमेन या उप डोमेन पर त्रुटि।

रीडायरेक्ट कॉन्फ़िगर करें

ऐच्छिक
यदि आपने किसी पृष्ठ को स्थानांतरित किया है या URL को छोटा करने के लिए टूटे हुए लिंक को रोकने के लिए URL रीडायरेक्ट का उपयोग करें। उदाहरण के लिए, आप में से एक ब्राउज़र अनुप्रेषित सकता 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

एक यूआरएल पैटर्न, जो प्रारंभिक अनुरोध यूआरएल से मेल खाता है, होस्टिंग को रीडायरेक्ट लागू करने के लिए ट्रिगर करता है

destination

एक स्थिर URL जहां ब्राउज़र को एक नया अनुरोध करना चाहिए

यह URL एक सापेक्ष या निरपेक्ष पथ हो सकता है।

type

HTTPS प्रतिक्रिया कोड

  • का एक प्रकार का उपयोग करें 301 'स्थायी रूप से स्थानांतरित' के लिए
  • का एक प्रकार का उपयोग 302 के लिए 'मिला' (अस्थायी पुनर्निर्देशन)

रीडायरेक्ट के लिए URL सेगमेंट कैप्चर करें

ऐच्छिक
कभी कभी, आप एक रीडायरेक्ट नियम के URL पैटर्न (पर कब्जा विशिष्ट क्षेत्रों के लिए आवश्यकता हो सकती है source या regex , मूल्य) तो नियम के दशक में इन क्षेत्रों को फिर से उपयोग करें destination पथ।

पुनर्लेखन कॉन्फ़िगर करें

ऐच्छिक
एकाधिक URL के लिए समान सामग्री दिखाने के लिए पुनर्लेखन का उपयोग करें। पैटर्न मिलान के साथ पुनर्लेखन विशेष रूप से उपयोगी होते हैं, क्योंकि आप पैटर्न से मेल खाने वाले किसी भी URL को स्वीकार कर सकते हैं और क्लाइंट-साइड कोड को यह तय करने दे सकते हैं कि क्या प्रदर्शित किया जाए।

आप यह भी है कि उपयोग करने वाले ऐप्स का समर्थन करने के पुनर्लेखन का उपयोग कर सकते HTML5 pushstate नेविगेशन के लिए। एक ब्राउज़र प्रयास 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 विशेषता पुनर्लेखन नियम है, जहां प्रत्येक नियम नीचे दी गई तालिका में फ़ील्ड्स को शामिल करना चाहिए की एक सरणी में शामिल है।

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 विशेषता है कि शीर्ष लेख में ऑब्जेक्ट की श्रृंखला में शामिल है। प्रत्येक ऑब्जेक्ट में, एक URL पैटर्न निर्दिष्ट करें, यदि अनुरोध URL पथ से मेल खाता है, तो निर्दिष्ट कस्टम प्रतिक्रिया शीर्षलेख लागू करने के लिए होस्टिंग को ट्रिगर करता है।

यहाँ एक के लिए बुनियादी संरचना है 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 विशेषता आप को नियंत्रित करने के लिए किया जाए या नहीं यूआरएल शामिल करना चाहिए की अनुमति देता है .html विस्तार।

जब true , स्वचालित रूप से होस्टिंग चला जाता है .html अपलोड की गई फ़ाइल यूआरएल से विस्तार। एक तो .html विस्तार अनुरोध में जोड़ा जाता है, होस्टिंग प्रदर्शन एक 301 एक ही रास्ते पर रीडायरेक्ट लेकिन समाप्त .html विस्तार।

यहाँ कैसे के शामिल किए जाने को नियंत्रित करने के है .html एक को शामिल करके URL में cleanUrls विशेषता:

"hosting": {
  // ...

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

अनुगामी स्लैश को नियंत्रित करें

ऐच्छिक
trailingSlash विशेषता आप को नियंत्रित करने के लिए किया जाए या नहीं स्थैतिक सामग्री यूआरएल अनुगामी स्लैश शामिल करना चाहिए अनुमति देता है।

  • जब true , होस्टिंग रीडायरेक्ट यूआरएल ट्रेलिंग स्लैश करने के लिए।
  • जब false , होस्टिंग रीडायरेक्ट यूआरएल स्लैश हटाने के लिए।
  • जब निर्देशिका सूचकांक फ़ाइलों के लिए अनिर्दिष्ट, होस्टिंग केवल अनुगामी का उपयोग करता है स्लैश (उदाहरण के लिए, about/index.html )।

यहाँ कैसे एक जोड़कर ट्रेलिंग स्लैश नियंत्रित करने के लिए है trailingSlash विशेषता:

"hosting": {
  // ...

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

trailingSlash विशेषता बादल कार्य या बादल भागो द्वारा कार्य गतिशील सामग्री के पुनर्लेखन प्रभावित नहीं करता।

ग्लोब पैटर्न मिलान

Firebase होस्टिंग कॉन्फ़िगरेशन विकल्प के व्यापक उपयोग कर ग्लोब पैटर्न मिलान कैसे Git हैंडल करने के लिए 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",

  }
}