【问题标题】:deploy an Angular app to Firebase but only one files gets uploaded将 Angular 应用部署到 Firebase,但只上传一个文件
【发布时间】:2019-11-01 20:22:11
【问题描述】:

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

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

欢迎 Firebase 托管设置完成您看到这个是因为 您已成功设置 Firebase 托管。现在是时候开始构建了 非凡的东西!

这是我的 cli 输出

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

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

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

L:\NetProject\BooksProject\BooksProject\ClientApp

在开始之前,请记住:

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

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

=== 项目设置

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

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

=== 主机设置

您的公共目录是文件夹(相对于您的项目 目录),其中将包含要上传的托管资产 火力基地部署。如果您有资产的构建过程,请使用您的 build 的输出目录。

?你想用什么作为你的公共目录?客户端应用程序? 配置为单页应用(将所有 url 重写为 /index.html)?是的 ?文件 client-app/index.html 已经存在。覆盖?是的 + 编写客户端应用程序/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 (main) 517 kB [初始] [渲染] 块 {2} polyfills-es5.405730e5ac8f727bd7d7.js (polyfills) 111 kB [初始] [渲染] 块 {3}styles.652a17618ef377c73983.css (styles) 200 kB [初始] [渲染]

日期:2019-06-19T06:55:19.884Z 哈希:c671e9fe8c3d67a7118d 时间: 29918ms 块 {0} runtime-es2015.858f8dd898b75fe86926.js(运行时) 1.41 kB [entry] [rendered] 块 {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]:文件上传完成 i 托管[book-search-api]:最终版本... + 托管[book-search-api]:版本最终确定 i 托管[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 "commit message" --only 托管

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

=== 正在部署到“book-search-api”...

我正在部署主机 我托管[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 并确保公开 directory 指向一个包含 index.html 文件的目录。

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

项目如下所示:

【问题讨论】:

    标签: angular firebase firebase-hosting


    【解决方案1】:

    当您第一次初始化 firebase 而不是首先检查 dist 文件夹时。将您编译的代码(main.js、poly.json、style.js 等)的位置提供给 firebase,当 firebase 询问公共目录时,您的情况是应该给出“dist/ClientApp”
    您在 ClientApp 中编译的代码是 dist 文件夹的子目录修改 火力基地.json。 “公共”:“dist/ClientApp”。 firebase 从此属性(公共)中获取已编译代码的目录位置,

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

    }

    【讨论】:

    • 谢谢我现在试过了,我认为它有效,但看看我更新的问题,也许我创建了错误的文件夹,你在图片上看到了
    • 很好,谢谢它的工作,但我在项目的根目录中有这个 books.xml,我如何包含它以便我可以搜索书籍
    • 你可以像developer.mozilla.org/en-US/docs/Web/Guide/…这样使用xml,如果倒转通讯不起作用请使用``这个标志谢谢
    • 我的 Angular 应用程序是一个搜索书籍的应用程序,它需要这个 books.xml,但是如何将它添加到我的 Firebase 应用程序中。您在搜索时看到这里没有任何反应,因为缺少 books.xml book-search-api.firebaseapp.com/search
    • 试试这个。或以角度搜索读取的 xml 文件,stackoverflow.com/questions/46056060/…
    猜你喜欢
    • 2017-11-22
    • 2017-08-15
    • 2016-10-07
    • 2018-11-05
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 1970-01-01
    • 2018-01-22
    相关资源
    最近更新 更多