9

I'm running firebase init and it's creating firebase.json. firebase.json is in the apps root directory, pointing towards my public directory app. See here:

firebase.json

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

Here is where my firebase.json lives: enter image description here

Here is my public directory, app: enter image description here

When I run firebase deploy from the command line, everything seems to upload correctly. I then run firebase open or equivalently go to the deploy site, and I get a 404 saying my index.html was not found when it's CLEARLY in the specified directory.

4

8 回答 8

6

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

然后,运行firebase init(再次在您的项目目录中)并键入相应的Firebase 应用程序,然后在Public Directory(current directory)中按回车键。

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

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

最后,运行firebase deployfirebase open

于 2015-03-14T04:02:39.623 回答
6

就我而言,我只需将路径从public更改为./public。这可能是版本控制错误。我已经打开了一个拉取请求

于 2017-07-23T09:32:44.977 回答
5
"rewrites": [
  {
    "source": "**",
    "destination": "/index.html"
  }

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

  1. 运行firebase初始化

  2. 选择主机选项

  3. 全部重写为索引:是

  4. 覆盖到 dist/index :否

然后firebase部署

然后解决问题

于 2019-08-09T05:20:52.100 回答
2

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

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

因此,我的 firebase.json 变成了

{
  "firebase": "<FirebaseAppName>",
  "public": "./dist/project-folder",
  "ignore": [
    "firebase.json",
    "**/.*",
    "**/node_modules/**"
  ]
}
于 2019-09-27T06:03:27.760 回答
1

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

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

尝试减少您的 html 文件,直到找出导致它出现故障的原因

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

于 2015-03-12T12:20:58.733 回答
0

检查您的节点版本

node --version

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

firebase login firebase use --add(选择正确的项目 ID)firebase init(选择托管,而不是正确的项目 ID)如果需要(npm run build)firebase deploy

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

祝你好运

于 2020-11-16T20:39:53.480 回答
0

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

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

确保你build回答

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

运行后firebase init

于 2019-05-10T07:13:54.033 回答
0

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

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

截图在这里

于 2021-11-14T15:17:58.950 回答