Firebase中具有全局模式的动态重写规则
我有一个指向“项目详细信息”页面的URL结构,如下所示: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
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/**
似乎有效,这让我更深入地挖掘。(提到**
匹配任意子目录中的任何文件或文件夹,这不是我想要的)