1

看完Node.js apps on Firebase Hosting之后,我尝试使用Polymer和NodeJs/express和firebase托管创建项目。
在链接的视频中显示,firebase默认会为静态public/index.html文件提供服务,这就是为什么他们将其删除,然后为其提供动态服务。但是,此特定文件位于相同的功能目录中,不再放置在公用文件夹中。

这是否意味着我的整个项目应放置在函数文件夹中或者仅仅是应用程序入口点?我无法发送放置在公共文件夹中的文件,如下所示。无法使用firebase引用node.js部署中的公用文件夹

  • 项目
    • 功能
      • server.js
    • 公共
      • 的index.html


app.get('*', (req, res) => { 
    res.sendFile(path.join(__dirname, '/public/index.html')); 
}) 

我相信火力是不同的托管公众和功能的文件夹还是我引用刚刚错了吗?

回答

3

你需要你的窝夹publicfunctions要能够在你的函数从它引用的文件。您只需将中的设置更改为例如firebase.json即可。 functions/public,然后移动functions中的目录。

然后你就可以做你喜欢描述的东西了。

+0

好吧,那就是我的想法。我只是不确定这是正确的方式,还是我错过了一些东西。有一点我不明白,在视频结尾,他将公共文件夹中的样式表链接到放置在函数文件夹中的索引,因为他希望保持静态资产分离。 – Niklas

+1

通常,您不应该使用云用于复制Firebase Hosting本身提供的功能的功能。因此,如果您只是想从所有路径提供index.html,则应使用[rewrite](https://firebase.google.com/docs/hosting/url-redirects-rewrites#section-rewrites)代替。 –

+0

我以前有功能+公共分裂根据教程 - 然后我有一个文件包含函数内的路线,我打电话res.render()。在某些情况下,它会在public中正确找到我的style.css,有时它会尝试从路径所在的相同目录中抽取style.css。为什么它会在某些情况下工作,而不是在其他情况下工作? (这应该是一个单独的问题?)提前致谢! – Jordan

相关问题