Firebase部署404找不到index.html

时间:2015-01-31 02:14:22

标签: deployment firebase-hosting

我正在运行firebase init并且正在创建firebase.jsonfirebase.json位于apps根目录中,指向我的公共目录app。见这里:

firebase.json

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

这是我的 firebase.json 所在的地方: enter image description here

以下是我的公共目录appenter image description here

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

7 个答案:

答案 0 :(得分:6)

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

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

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

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

最后,运行firebase deployfirebase open

答案 1 :(得分:5)

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

答案 2 :(得分:2)

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

我遇到了与您相同的问题,这是我的解决办法:

  1. 运行firebase初始化

  2. 选择主机选项

  3. 全部重写为index:是

  4. 覆盖到dist / index:no

然后部署Firebase

然后解决问题

答案 3 :(得分:1)

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

如果您的index.html链接到错误的外部资源甚至是内部资源,这些资源需要很长时间才能加载,您最终会收到错误消息。有时你得到503错误,有时你得到404。

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

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

答案 4 :(得分:0)

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

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

确保您对

回答build
  

您要将什么用作公用目录?

运行firebase init之后。

答案 5 :(得分:0)

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

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

因此,我的firebase.json变成了

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

答案 6 :(得分:0)

检查您的节点版本

node --version

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

firebase登录 firebase use --add(选择正确的项目ID) firebase初始化(选择托管,而不是正确的项目ID) 如果需要(npm运行构建) Firebase部署

解决方案是第二个选择正确的项目ID的原因,因为Firebase命令以某种方式自动引用了错误的项目ID

祝你好运