0

对于 google firebase 托管,我尝试在 firebase.json 中定义一个规则,该规则结合了匹配根页面的规则(例如https://stackoverflow.com/

"source": "/"  

和子页面(例如https://stackoverflow.com/tags

"source": "*"

因为它们共享相同的配置。

我当前的配置看起来像这样,它可以工作但很难维护:

{
  "hosting": {
    "public": "build",
    "ignore": [
      "**\/.*",
    ],
    "cleanUrls": true,
    "headers": [
      {
        "source": "/",
        "headers": [
          {
            "key": "cache-control",
            "value": "max-age=2000, public"
          },
          {
            "key": "x-content-type-options",
            "value": "nosniff"
          },
          {
            "key": "referrer-policy",
            "value": "no-referrer"
          },...
        ]
      },
      {
        "source": "*",
        "headers": [
          {
            "key": "cache-control",
            "value": "max-age=2000, public"
          },
          {
            "key": "x-content-type-options",
            "value": "nosniff"
          },
          {
            "key": "referrer-policy",
            "value": "no-referrer"
          },...
        ]
      },
      {
        "source": "_app\/**",
        "headers": [
          {
            "key": "cache-control",
            "value": "max-age=86400, public"
          }
        ]
      }
    ]
  }
}

我想建立一个统一的规则并用这个来尝试

"source": "@(/|*)"  

但该规则仅匹配子页面而不匹配根页面。

我在写这篇文章时发现的一个解决方案是

 "regex": "^/[^.]*$"

它与根页面和所有子页面匹配,而不是资产。我仍然想知道这是否可以使用 glob 以及使用正则表达式是否可以(因为谷歌建议使用 glob)。

4

0 回答 0