将Angular应用部署到Firebase,但仅上传一个文件

时间:2019-06-19 07:03:09

标签: angular firebase firebase-hosting

我将Angular应用程序部署到Firebase,但是仅上传了一个文件。 我遵循许多教程,包括Get started with Firebase Hosting

部署后转到托管URL:https://book-search-api.firebaseapp.com  我所看到的只是其他设置,例如:

  

欢迎Firebase托管设置完成您正在看到此信息是因为   您已经成功设置了Firebase Hosting。现在该开始构建了   一些非凡的东西!

这是我的cli输出

  

L:\ NetProject \ BooksProject \ BooksProject \ ClientApp> firebase初始化

 ######## #### ########  ######## ########     ###     ######  ########
 ##        ##  ##     ## ##       ##     ##  ##   ##  ##       ##
 ######    ##  ########  ######   ########  #########  ######  ######
 ##        ##  ##    ##  ##       ##     ## ##     ##       ## ##
 ##       #### ##     ## ######## ########  ##     ##  ######  ########
     

您将在此目录中初始化Firebase项目:

     

L:\ NetProject \ BooksProject \ BooksProject \ ClientApp

     

开始之前,请紧记:

     
      
  • 您要在现有Firebase项目目录中进行初始化
  •   
     

?您准备好继续了吗?是啊您有哪些Firebase CLI功能   想要为此文件夹设置?按空格键选择功能,然后   输入以确认您的选择。托管:配置和部署Firebase   托管网站

     

===项目设置

     

首先,让我们将此项目目录与Firebase项目相关联。   您可以通过运行firebase use --add创建多个项目别名,   但目前,我们将只设置一个默认项目。

     

i .firebaserc已经有一个默认的项目,使用book-search-api。

     

===托管设置

     

您的公共目录是文件夹(相对于您的项目   目录),其中包含要与之一起上传的托管资产   Firebase部署。如果您有资产的建造流程,请使用   构建的输出目录。

     

?您想使用什么作为公用目录?客户端应用程序?   配置为单页应用程序(将所有URL重写为/index.html)?是   ?文件client-app / index.html已经存在。覆盖?是   +编写了client-app / index.html

     

i将配置信息写入firebase.json ... i编写项目   信息到.firebaserc ...

     
      
  • Firebase初始化完成!
  •   
     

L:\ NetProject \ BooksProject \ BooksProject \ ClientApp> ng build --prod   --aot

     

日期:2019-06-19T06:54:49.906Z哈希值:0428c1e6725a31f1ae9c时间:   41224ms块{0} runtime-es5.741402d1d47331ce975c.js(运行时)1.41   kB [entry] [rendered]块{1} main-es5.1057831c3a881ebea921.js   (主要)517 kB [初始] [渲染]块{2}   polyfills-es5.405730e5ac8f727bd7d7.js(polyfills)111 kB [初始]   [呈现]块{3} styles.652a17618ef377c73983.css(样式)200 kB   [初始] [呈现]

     

日期:2019-06-19T06:55:19.884Z哈希:c671e9fe8c3d67a7118d时间:   29918ms块{0} runtime-es2015.858f8dd898b75fe86926.js(运行时)   1.41 kB [entry] [rendered] chunk {1} main-es2015.e5390b5408abc2d4f8dd.js(main)449 kB [initial] [rendered]   块{2} polyfills-es2015.edf60e92366a5a261979.js(polyfills)36.8 kB   [初始] [渲染]块{3} styles.652a17618ef377c73983.css   (样式)200 kB [初始] [渲染]

     

L:\ NetProject \ BooksProject \ BooksProject \ ClientApp> firebase部署-m   “提交消息”-仅托管

     

===部署到'book-search-api'...

     

我正在部署托管我正在托管[book-search-api]:开始部署...   我托管[book-search-api]:在客户端应用中找到1个文件   +托管[book-search-api]:文件上传完成后托管[book-search-api]:定稿版本...   +主机托管[book-search-api]:版本已定稿主机托管[book-search-api]:发布新版本...   +托管[book-search-api]:发布完成

     
      
  • 部署完成!
  •   
     

项目控制台:   https://console.firebase.google.com/project/book-search-api/overview   托管网址:https://book-search-api.firebaseapp.com

     

L:\ NetProject \ BooksProject \ BooksProject \ ClientApp>

更新

在@ShahidIslam的帮助下,我将firebase.json公共属性从“ client-app”更改为“ dist”,然后运行

  

firebase deploy -m“提交消息”-仅托管

现在我认为是因为它上传了文件

===部署到'book-search-api'...

i部署主机 我托管[book-search-api]:开始部署... 我托管[book-search-api]:在dist中找到10个文件 +托管[book-search-api]:文件上传完成 我托管[book-search-api]:定稿版本... +托管[book-search-api]:版本已完成 我托管[book-search-api]:发布新版本... +托管[book-search-api]:发布完成

  • 部署完成!

项目控制台:https://console.firebase.google.com/project/book-search-api/overview 托管网址:https://book-search-api.firebaseapp.com

当我现在转到https://book-search-api.firebaseapp.com

说:

  

找不到页面此文件不存在,并且没有index.html   在当前目录或根目录中的404.html中找到。

     

我为什么看到这个?您可能为以下位置部署了错误的目录   你的申请。检查您的firebase.json并确保公共   目录指向包含index.html文件的目录。

     

您还可以在网站的根目录中添加404.html来替换它   具有自定义错误页面的页面。

项目如下:

enter image description here

1 个答案:

答案 0 :(得分:1)

第一次初始化firebase时要先检查dist文件夹。将编译后的代码(main.js,poly.json,style.js等)的位置提供给firebase,当firebase询问公共目录时,在这种情况下,应该已经给了“ dist / ClientApp”
您在ClientApp中编译的代码(是dist文件夹的子目录)修改  firebase.json。 “ public”:“ dist / ClientApp”。 firebase从此属性(公共)获取已编译代码的获取目录位置,

    {
  "hosting": {
    "public": "dist/ClientApp",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }

}