Firebase.json中/myfunction/{ANY_STRING}/{ANY_STRING}路径重写规则写法是否正确?
问题解答
你的重写规则存在几个问题,需要调整:
路径大小写不匹配
Firebase Hosting的路径匹配是区分大小写的。你目标匹配的URL是小写的/myfunction/{ANY_STRING}/{ANY_STRING}/,但规则里写的是/myFunction/*/*(首字母大写),这会导致小写路径无法被匹配到,需要把source改成全小写的/myfunction/*/*(如果要精确匹配带末尾斜杠的路径,也可以写成/myfunction/*/*/)。JSON语法错误
你提供的规则代码末尾多了一个多余的逗号:{ "source": "/myFunction/*/*", "function": "myFunction", },这个末尾逗号会导致
firebase.json解析失败,需要删除"function": "myFunction",后面的逗号,修正后:{ "source": "/myfunction/*/*", "function": "myFunction" }末尾斜杠的匹配问题
如果你需要精确匹配带末尾斜杠的URL(比如/myfunction/abc/def/),可以把source写成/myfunction/*/*/;如果希望同时匹配带和不带末尾斜杠的路径,Firebase Hosting默认会自动处理末尾斜杠的重定向,也可以添加两条规则分别覆盖两种情况。
调整后的完整规则示例(放在rewrites数组中):
{ "hosting": { "rewrites": [ { "source": "/myfunction/*/*", "function": "myFunction" }, { "source": "/myfunction/*/*/", "function": "myFunction" } ] } }
内容的提问来源于stack exchange,提问作者Alphonsio
相关产品推荐
相关产品推荐

