对于 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)。