重定向火力地堡托管根到云功能无法正常工作
问题描述:
我使用火力地堡有firebase.json
文件应该所有流量转发到云功能(预渲染),它填充元和OG标签SEO主机。重定向火力地堡托管根到云功能无法正常工作
{
"hosting": {
"public": "dist/prod",
"rewrites": [
{
"source": "**",
"function": "prerender"
}
]
}
}
我的prerender
函数正在处理请求并呈现HTML文件。这工作得很好:
export const prerender = functions.https.onRequest((req, res) => {
console.log('prerender function: "' + req.path + '"');
...
}
打在https://xxx.cloudfunctions.net/prerender
终点时,我正确地得到中的呼叫火力地堡仪表板功能下 - >日志:
prerender function: "null"
但是,调用https://mypage.firebaseapp.com
的时候,我没有得到任何日志,它似乎在我的dist/prod
文件夹中呈现index.html
。
这有什么,我与重写失踪?我尝试将/
改写为相同的功能,但没有成功。任何提示非常感谢!
答
你应该能够路由所有URL的功能正是你展示的方式。我猜你的dist/prod目录中仍然有一个index.html文件。在我的测试项目中,我简单地将根index.html重命名为其他内容,并且请求/
被路由到我的函数。
事实证明,如果存在与客户端请求URL相匹配的静态网页内容,那么该内容将被服务而不是委托给该功能。对于任何传入的URL都是如此。只有这样,才能真正做到所有请求路由到您的功能是在部署之前从dist/prod
文件夹中删除所有内容。
相信的关键信息是rewrites文档中:
如果一个文件或文件夹不会在 指定源存在的重写规则仅适用,并返回的实际内容该文件位于 目的地而不是HTTP重定向。
谢谢!这工作完美。 –