我有这个firebase.json json:
{
"hosting": {
"public": "build/web",
"headers": [
{ "source": "/**", "headers": [{"key": "Cache-Control", "value": "no-cache, no-store, must-revalidate"}] }
]
}
],
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "/challenge{,/**}",
"function": "preRender"
},
{
"source": "/homa{,/**}",
"function": "preRender"
}
]
},
"emulators": {
"hosting": {
"port": 5000
},
"ui": {
"enabled": true
}
},
"functions": {
"predeploy": [
"npm --prefix "$RESOURCE_DIR" run lint"
]
}
}
问题是诸如https://myproj-4324b.web.app/#/challenge不要触发preRender
函数。我想"#"之后的所有内容都会被忽略,但我不知道如何通过前缀配置重写。如何使所有URL都通过preRender
函数?
我能知道你在firebase项目中的GCP resource location
是什么吗?如果它不在us-central1中,下面是答案。
根据firebase的官方文件,有一个重要的说明:
重要提示:Firebase Hosting仅支持us-central1中的云功能
因此,如果你的firebase项目位置位于其他地区,那么访问Firebase Functions
的URL应该是这样的
https://us-central1-yourProjectName.cloudfunctions.net/yourFunctionsName
我亲自测试了一个新的firebase项目,该项目位于us-central1,其工作通过以下链接进行,我可以使用自定义URL连接我的Firebase Functions
。