【问题标题】:Firebase hosting deploy error "HTTP Error: 404, Not Found"Firebase 托管部署错误“HTTP 错误:404,未找到”
【发布时间】:2019-04-02 14:24:43
【问题描述】:

我不知道这是否与最近将 firebase-tools 升级到 6.0 有关。但我无法将我的文件部署到托管项目。

我输入 firebase deploy 后的输出:

=== 部署到“legofun-8f22d”... 我部署托管 我托管[legofun-8f22d]:开始部署... 我托管[legofun-8f22d]:在 /_site 中找到 42 个文件 (节点:10178)UnhandledPromiseRejectionWarning:错误 在新的 FirebaseError (/usr/lib/node_modules/firebase-tools/lib/error.js:9:18) 在 Object.reject (/usr/lib/node_modules/firebase-tools/lib/utils.js:67:31) 在 /usr/lib/node_modules/firebase-tools/lib/deploy/hosting/prepare.js:48:26 在 arrayEach (/usr/lib/node_modules/firebase-tools/node_modules/lodash/lodash.js:516:11) 在 Function.forEach (/usr/lib/node_modules/firebase-tools/node_modules/lodash/lodash.js:9344:14) 在 module.exports (/usr/lib/node_modules/firebase-tools/lib/deploy/hosting/prepare.js:29:7) 在 _chain (/usr/lib/node_modules/firebase-tools/lib/deploy/index.js:22:40) 在 /usr/lib/node_modules/firebase-tools/lib/deploy/index.js:63:16 在 在 process._tickDomainCallback (internal/process/next_tick.js:229:7) (节点:10178) UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。 (拒绝编号:1) (节点:10178)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。 ⠏托管:将文件添加到版本 [0/42] (0%)(node:10178) UnhandledPromiseRejectionWarning: E​​rror 在新的 FirebaseError (/usr/lib/node_modules/firebase-tools/lib/error.js:9:18) 在 module.exports (/usr/lib/node_modules/firebase-tools/lib/responseToError.js:38:12) 在 Request._callback (/usr/lib/node_modules/firebase-tools/lib/api.js:37:35) 在 Request.self.callback (/usr/lib/node_modules/firebase-tools/node_modules/request/request.js:185:22) 在 emitTwo (events.js:126:13) 在 Request.emit (events.js:214:7) 在请求。 (/usr/lib/node_modules/firebase-tools/node_modules/request/request.js:1161:10) 在 emitOne (events.js:116:13) 在 Request.emit (events.js:211:7) 在传入消息。 (/usr/lib/node_modules/firebase-tools/node_modules/request/request.js:1083:12) (节点:10178) UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。 (拒绝编号:6) 错误:HTTP 错误:404,未找到

【问题讨论】:

  • 尝试更新您的 firebase-tools 吗? :S
  • 我已经这样做了,以防万一:)
  • 我遇到了同样的问题。自从我跑了firebase target:apply hosting。这是截图:imgur.com/a/Bn5ja0j

标签: javascript node.js firebase


【解决方案1】:

我遇到了同样的问题

在我的情况下,我通过在公共标签 "public": "./dist/my-app-name", 上的 /dist 之前在 firebase.json 上添加一个点来修复它

我的 json 示例

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

【讨论】:

  • 对于那些在多个站点上使用 firebase 目标的人:申请托管不要忘记添加,"target": "targe-name",
【解决方案2】:

我遇到了类似的问题,必须运行以下命令才能使其正常工作

npm install firebase-functions@latest firebase-admin@latest --save
npm install -g firebase-tools

更多详情请见Get started: write and deploy your first functions。

【讨论】:

    【解决方案3】:

    遇到同样的问题,我的问题是我在控制台中删除了项目,但源代码仍在引用它,因此出现错误 404 - 找不到资源。

    我的解决方案是:

    • 删除位于项目根目录的 .firebaserc 文件(包含您的项目别名)
    • 运行 firebase init 并链接到您的项目
    • 再次运行firebase deploy

    【讨论】:

      【解决方案4】:

      更改了公共目录引用。 部署。它会给出错误。 改回原来的了。 服务然后检查。 部署。

      【讨论】:

      • 我在更改名称时遇到错误,但在修复目录后它不起作用。我遇到了同样的错误。
      【解决方案5】:

      我在尝试关注 Starting with React Most Wanted codelab step "Prepare Firebase Databases" 时遇到了类似的错误

      错误:HTTP 错误:404,项目“react-most-wanted-ef689”不存在。

      'react-most-wanted-ef689' 将包含任何项目的名称。

      看来我没有正确设置 Firestore。缺少步骤:

      为项目激活 Firestore 并通过 Get started with Cloud Firestore 指定资源位置 ID。

      我不认为它在 codelab 中,所以也许这是 codelab 编写以来的新内容。

      【讨论】:

      • 谢谢!我已经广泛使用 firebase 有一段时间了,当我快速创建一个临时环境/项目时,这让我感到困惑......我忘记了你必须在 web ui 上手动创建 firestore......
      【解决方案6】:

      确保为 Firebase 项目选择默认存储位置,然后再次部署。

      方法如下:

      在 firebase 项目 > 项目概述 > 齿轮图标 > 项目设置 > 默认 GCP 资源位置

      您可以简单地转到 Firebase 控制台 > 存储 > 启用 Firebase 存储。

      它会解决问题。

      【讨论】:

        【解决方案7】:

        在“Firebase 控制台 > 托管页面”的底部,点击“添加另一个站点”并使用您用于目标的相同名称创建它们。

        【讨论】:

          【解决方案8】:

          解决问题的唯一问题是互联网连接不稳定。互联网连接正确连接后,我就是这样解决的。

          【讨论】:

            【解决方案9】:
            • 转到您的 Firebase 控制台
            • 转到设置->常规,您将在此处看到默认 GCP 资源位置
            • 将 GCP 位置设置为 nam5 (us-central)

            【讨论】:

            • 虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。您可以在帮助中心找到更多关于如何写好答案的信息:stackoverflow.com/help/how-to-answer。祝你好运?
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2018-02-03
            • 2018-07-11
            • 2021-01-15
            • 1970-01-01
            • 1970-01-01
            • 2022-06-10
            • 2018-11-05
            相关资源
            最近更新 更多