在对应用程序进行了一些修改之后,我尝试将SSR应用程序部署在最初由https://github.com/subhendukundu/template-react-ssr/tree/feature/react-router分叉的Firebase中。
当我执行sudo firebase serve --only functions,hosting
时工作正常,但当我执行firebase deploy
时抛出错误。
可复制的仓库是https://github.com/subhendukundu/template-react-ssr/tree/feature/react-router,其中有一个package.json https://github.com/subhendukundu/template-react-ssr/tree/feature/react-router/public
我也将公共目录用作函数目录https://github.com/subhendukundu/template-react-ssr/blob/feature/react-router/firebase.json。
但是,即使我为云函数使用了不同的函数目录,我也会看到相同的错误。
反正有我可以解决的吗?
答案 0 :(得分:0)
有可能,但是您不能将静态资产与云功能一起使用。您需要混合使用Firebase功能和Firebase托管。
Firebase的家伙已经考虑过这一点,您也可以使用一个实现。
检查以下文档:
注意:使用云功能时需要考虑一些延迟。
当新实例处理其第一个请求时,响应时间会缩短,这称为冷启动
答案 1 :(得分:-1)
问题是,firebase托管仅支持SPA,这意味着SSR不可用,您需要在其他环境中运行SSR服务器,在其中可以运行nextJS,或者如果您使用的是静态页面生成器您可以直接上传文件,这会损害刷新内容的能力,不过,我确信采用云功能和gatsby的解决方案是可行的。
Tl; DR:您不会从Firebase托管中获得SSR