为什么在Firebase Hosting服务上部署Angular应用程序后,为什么会获得此页面?

时间:2020-10-13 09:14:15

标签: angular firebase firebase-hosting

我正在尝试在Firebase上部署Angular应用程序,但发现了一些问题。

首先,我进入我的项目目录,并通过以下方式构建要生产的项目:

developer@developer-virtual-machine:~/Documents/Angular-WS/color_patch$ ng build --prod

项目正确构建之后,我将这个文件夹结构保存到项目的 dist 目录中:

enter image description here

/ dist / 文件夹包含构建过程的输出(包括 index.html 文件)

然后我做了:

firebase init

,我选择了以下声音:托管:配置和部署Firebase托管站点

跟随它问我:

  1. 您要将什么用作公用目录? (公开):之所以写 dist 是因为在这里创建了 color_patch 目录,该目录应该是我必须部署的程序包

  2. 配置为单页应用程序(将所有网址重写为/index.html)?我写的是

  3. 文件dist / index.html已存在。覆盖? (是/否)我写的是

它完全没有问题

然后进入项目目录,并通过以下命令部署项目:

developer@developer-virtual-machine:~/Documents/Angular-WS/color_patch$ firebase deploy

它已完成且没有错误(显示“部署完成!”)

如果我进入Firebase控制台,进入“托管”部分,则可以看到我的部署以及正确上传的文件数。

问题是,尝试访问已部署应用程序的URL,我现在正在获取一个包含此消息的页面,而不是我的Web应用程序:

enter image description here

为什么?怎么了?我想念什么?

1 个答案:

答案 0 :(得分:1)

当您使用Firebase init从Firebase项目获得项目时。

这是您在文件夹中得到的。

Project Structure

在“项目”结构中,存在 index.html 。这是Firebase托管文档文件。

对于Angular,您只需进行少许更改即可进行部署。

像对您的内容进行更改

只需在您的Firebase初始化项目中安装角度项目

当您是Firebase项目的公共目录时,您必须从 angular.json 提供outputPath

Second Image

然后像在角度项目中一样运行命令:

ng build --prod

它将在Firebase项目公用文件夹中创建要托管的文件。

然后只需运行命令:

firebase deploy

有关此的更多信息,您可以阅读此documentation