Firebase中具有全局模式的动态重写规则

Firebase中具有全局模式的动态重写规则,firebase,firebase-hosting,Firebase,Firebase Hosting,我有一个指向“项目详细信息”页面的URL结构,如下所示:john/project/eRdKn6(其中“john”是用户名,“eRdKn6”是项目id)。我希望将其重写到文件project.html,在其中解析document.location并加载适当的数据。因此用户名和项目id应该是动态的 我在firebase.json中的规则如下所示: { "source": "*/project/*", "destination": "/project.html" } { "firebase

我有一个指向“项目详细信息”页面的URL结构,如下所示:
john/project/eRdKn6
(其中“john”是用户名,“eRdKn6”是项目id)。我希望将其重写到文件
project.html
,在其中解析document.location并加载适当的数据。因此用户名和项目id应该是动态的

我在
firebase.json
中的规则如下所示:

{
  "source": "*/project/*",
  "destination": "/project.html"
}
{
  "firebase": "example",
  "public": "public",
  "ignore": [
    "firebase.json",
    "**/.*",
    "**/node_modules/**"
  ],
  "rewrites": [
    {"source": "/*/project/*", "destination": "/project.html"}
  ]
}
但是,当我尝试加载
http://example.com/john/project/eRdKn6

我尝试只将最后一部分动态化,作为测试(例如,
{“source”:“john/project/*”,“destination”:/project.html”}
,但我也得到了404

project.html
位于
public
文件夹中

这是我的完整
firebase.json
文件:

{
  "firebase": "example",
  "public": "public",
  "ignore": [
    "firebase.json",
    "**/.*",
    "**/node_modules/**"
  ],
  "rewrites": [
    {"source": "*/project/*", "destination": "/project.html"}
  ]
}

问题似乎是
source
需要一个起始斜杠,例如
/*/project/*
。我的完整
firebase.json现在看起来像这样:

{
  "source": "*/project/*",
  "destination": "/project.html"
}
{
  "firebase": "example",
  "public": "public",
  "ignore": [
    "firebase.json",
    "**/.*",
    "**/node_modules/**"
  ],
  "rewrites": [
    {"source": "/*/project/*", "destination": "/project.html"}
  ]
}

这似乎是一个文档问题,因为没有一个示例涉及此用例。

您阅读过指南和上的相关链接吗?有几个示例,没有一个与您的类似。具体来说,
***
而不是
*
。谢谢!我试图遵循指南,但它没有涉及我的用例。您的评论帮助解决了这个问题,不过:
**/project/**
似乎有效,这让我更深入地挖掘。(提到
**
匹配任意子目录中的任何文件或文件夹,这不是我想要的)