为了服务器端渲染我的项目,我用Node.js设置了一个docker容器。该容器在Google的容器注册处注册,并连接到Cloud Run的一个服务。当我使用所提供的服务URL时,该网站是SSR,一切看起来都非常好。
为了将项目与firebase连接,我写了这个重定向。
"hosting": {
"public": "dist/browser",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"run": {
"serviceId": "nest-server-ssr",
"region": "europe-west1"
}
}
]
},
不幸的是,当我现在看代码的时候,它已经不是呈现在服务端了。
有人遇到过类似的问题吗?
EDIT:
正如Michael提到的,问题出在第二个index.html文件上。你可以看到,这个是服务端。(我加了一个测试注释来确定)
所以解决的办法就是简单的将你的index.html文件从公共目录中删除。谢谢你Michael的帮助
(猜测发生了什么)
如果你有一个 index.html
在你 dist/browser
文件夹,并访问您网站的根路径 (/
),将提供静态HTML,而不是调用Cloud Run服务。
正如您所看到的 在文档中,"精确匹配 "的静态内容比重写的优先级更高。
为了解决这个问题,您只需删除您的 index.html
文件从公共目录。