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

时间:2016-02-04 10:55:06

标签: firebase firebase-hosting

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

firebase.json中的规则我看起来像这样:

{
  "source": "*/project/*",
  "destination": "/project.html"
}

但是,当我尝试加载http://example.com/john/project/eRdKn6时,Firebase 404。

我试图仅将最后一部分视为动态测试(例如{"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"}
  ]
}

1 个答案:

答案 0 :(得分:2)

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

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

这似乎是一个文档问题,因为没有一个例子涵盖了这个用例。