当我到达托管网站的路径时,我正在尝试触发Google云功能。
因此,我已将其添加到 firebase.json
"rewrites": [
{
"source": "**",
"destination": "/index.html",
"function": "app"
}
这是我称为“ app” 的功能:
[...]
server.get('*', (req:any,res:any) => {
const isBot = detectBot(req.headers['user-agent']);
if(isBot) {
const botUrl = generateUrl(req);
nf(`${renderUrl}/${botUrl}`)
.then((r: { text: () => any; }) => r.text())
.then((body: { toString: () => any; }) => {
res.set('Cache-Control', 'public, max-age=300, s-maxage=600');
res.set('Vary','User-Agent');
res.send(body.toString())
});
} else {
nf(`https://${appUrl}`)
.then((r: { text: () => any; }) => r.text())
.then((body: { toString: () => any; }) => {
res.send(body.toString());
});
}
});
exports.app = functions.https.onRequest(server);
已部署“应用” 功能和网站,但是当我到达url时,不会触发“应用” 功能。
谢谢。
答案 0 :(得分:0)
您的“重写”部分未正确设置。您可以同时指定目标(“ /index.html”)和函数参数。这是一个重写示例,它将对past_tense = [word + ('d' if word[-1]=='e' else 'ed') for word in words]
的请求定向到您的/function-url
函数,而其他请求(未定义或“ / foo”和“ / foo / **”)定向到app
:< / p>
index.html
有关如何配置重写here的更多信息。