【问题标题】:Firebase deploy 404 can't find index.htmlFirebase 部署 404 找不到 index.html
【发布时间】:2015-01-31 02:14:21
【问题描述】:

我正在运行firebase init,它正在创建firebase.jsonfirebase.json 在应用程序根目录中,指向我的公共目录app。见这里:

firebase.json

{
  "firebase": "harrison",
  "public": "app",
  "ignore": [
    "firebase.json",
    "**/.*",
    "**/node_modules/**"
  ]
}

这是我的 firebase.json 所在的位置:

这是我的公共目录app

当我从命令行运行firebase deploy 时,一切似乎都正确上传。然后我运行 firebase open 或等效地转到部署站点,我得到一个 404 说我的 index.html 在指定目录中很明显时找不到。

【问题讨论】:

  • 我有一个与您描述的相同问题的类似设置。我什至将 index.html 文件放在几个不同的(子)文件夹中,以确保其中一个能够被加载。没有。

标签: deployment firebase-hosting


【解决方案1】:

如果您使用的是 Yeoman,请在您的项目目录中运行 grunt build 以创建 /dist 目录。

然后,运行firebase init(再次在您的项目目录中)并输入相应的Firebase 应用程序,然后在公共目录(当前目录)中按回车键。 p>

接下来,将 firebase.json 更改为:

{
  "firebase": "<FirebaseAppName>",
  "public": "./dist",
  "ignore": [
    "firebase.json",
    "**/.*",
    "**/node_modules/**"
  ]
}

最后,运行firebase deployfirebase open

【讨论】:

    【解决方案2】:

    就我而言,我只需将路径从 public 更改为 ./public。这可能是版本控制错误。我开了一个pull request

    【讨论】:

      【解决方案3】:
      "rewrites": [
        {
          "source": "**",
          "destination": "/index.html"
        }
      

      我遇到了和你一样的问题,这是我的解决方案:

      1. 运行 firebase 初始化

      2. 选择主机选项

      3. 全部重写为索引:是

      4. 覆盖到 dist/index :no

      然后firebase部署

      然后解决问题

      【讨论】:

      • 如果你使用像 React Router 这样的工具并且能够在本地加载所有路由,这应该可以解决 firebase serve 和 firebase deploy 的问题。
      【解决方案4】:

      我遇到了同样的问题并且得到 404 然后我发现我的 index.html 存在于我的项目文件夹中,即

      dist --> 项目文件夹 --> index.html

      因此,我的 firebase.json 变成了

      {
        "firebase": "<FirebaseAppName>",
        "public": "./dist/project-folder",
        "ignore": [
          "firebase.json",
          "**/.*",
          "**/node_modules/**"
        ]
      }
      

      【讨论】:

      • 你拯救了我的一天 :)
      【解决方案5】:

      我想我找到了原因,因为我自己也有同样的问题。

      如果您的 index.html 链接到错误的外部资源,甚至是加载时间过长的内部资源,您最终会遇到错误。有时您会收到 503 错误,有时您会收到 404。

      尝试减少你的 html 文件,直到你找出导致它出错的原因

      另外,链接到所有脚本和 css 文件的缩小版本。

      【讨论】:

        【解决方案6】:

        您的firebase.json 文件应如下所示:

        {
          "hosting": {
            "site": "biscayne",
            "public": "build",
            "ignore": [
              "firebase.json",
              "**/.*",
              "**/node_modules/**"
            ]
          }
        }
        

        请务必回复build

        你想用什么作为你的公共目录?

        在运行firebase init之后。

        【讨论】:

          【解决方案7】:

          检查你的节点版本

          node --version
          

          不支持大于 10 的节点版本。降级到低于 10 的任何值,如果这不起作用,请尝试以下操作。

          firebase 登录 firebase 使用 --add (选择正确的项目 ID) firebase init(选择托管,而不是正确的项目 ID) 如果需要(npm 运行构建) 火力基地部署

          解决方案是 2 选择正确的项目 ID 因为不知何故 firebase 命令会自动引用错误的项目 ID

          祝你好运

          【讨论】:

            【解决方案8】:

            我遇到了同样的问题。您只需在 firebase.json 文件中编写以下代码

            "rewrites": [
                  {
                    "source": "**",
                    "destination": "/index.html"
                  }
                ]
            

            【讨论】:

              猜你喜欢
              • 2020-04-13
              • 2019-03-20
              • 1970-01-01
              • 2022-10-07
              • 2021-04-22
              • 2019-04-02
              • 2019-12-12
              • 2020-12-28
              • 2018-11-05
              相关资源
              最近更新 更多